ツイッターに自動ログイン・ログアウト処理
今回は、ツイッターに自動ログイン(ログアウト)する方法について解説していきます。
ツイッターに毎回ログインするのが手間であったり、複数アカウントを保有している場合に簡単にログインしたいという方が多いのではないでしょうか。
こちらでは、ログインする基本部分について説明していますので、カスタマイズして目的にあったプログラムを構築してください。
ツイッターに自動ログイン(ログアウト)のマクロ
Sub sample()
Dim objIE As InternetExplorer
'IEバージョン9以上
If IeVerCheck > 8 Then
'ツイッターログイン画面表示
Call ieView(objIE, "https://twitter.com/login")
'ログインチェック
If objIE.LocationURL <> "https://twitter.com/login" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "http://twitter.com/logout")
Call tagClick(objIE, "button", "ログアウト")
Call ieNavi(objIE, "https://twitter.com/login")
End If
'ツイッターログイン処理
Call formText(objIE, "session[username_or_email]", "★ツイッターID★")
Call formText(objIE, "session[password]", "★ツイッターPASS★")
Call tagClick(objIE, "button", "ログイン")
'IEバージョン8以下
Else
'ツイッターログイン画面表示
Call ieView(objIE, "https://mobile.twitter.com/i/guest")
'ログインチェック
If objIE.LocationURL <> "https://mobile.twitter.com/i/guest" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "https://mobile.twitter.com/account")
Call tagClick(objIE, "input", "ログアウト")
Call ieNavi(objIE, "https://mobile.twitter.com/i/guest")
End If
'ツイッターログイン処理
Call formText(objIE, "username", "★ツイッターID★")
Call formText(objIE, "password", "★ツイッターPASS★")
Call tagClick(objIE, "input", "ログイン")
End If
End Sub
実行結果
それでは、1つずつ見ていきましょう。
'IEバージョン9以上
If IeVerCheck > 8 Then
(省略)
'IEバージョン8以下
Else
(省略)
End If
まず、IEのバージョンをチェックする「ieVerCheck」を利用して、Webブラウザのバージョンで処理を分岐させています。
こちらはInternet Explorerのバージョンチェック「ieVerCheck」でも説明しましたが、バージョンが8以下のWebブラウザの場合、表示されないかもしくはモバイル版が表示されます。
PC版とモバイル版ではソース内容が異なりますので、最初に「IF~Thenステートメント」で処理を分けています。
'ツイッターログイン画面表示
Call ieView(objIE, "https://twitter.com/login")
Webブラウザのバージョン9以上の場合をはじめに説明すると、ツイッターのログイン画面を表示させます。
'ログインチェック
If objIE.LocationURL <> "https://twitter.com/login" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "http://twitter.com/logout")
Call tagClick(objIE, "button", "ログアウト")
Call ieNavi(objIE, "https://twitter.com/login")
End If
ここでまた「If~Thenステートメント」を利用していますが、ログインが保持されている場合はログアウト処理をしなければいけません。こちらはその処理になります。
「LocationURLプロパティ」から現在表示されているURLを取得し、ログイン画面のURLかをチェックしています。
ログイン画面のURLでない場合は、ログアウト処理を行います。
パソコン版のログアウトは「http://twitter.com/logout」にアクセスすれば、ログアウト処理になりますので、「ieNavi」にて直接アクセスします。
次に指定したタグをクリックする「tagClick」でログアウトボタンをクリックしますが、先にHTMLソースを確認します。
<form action="/logout" class="t1-form signout" method="post">
<input type="hidden" value="ae103045636cb35461b7d18d8230d32a9f9da586" name="authenticity_token">
<h1>Twitter から<strong>ログアウト</strong>しますか?</h1>
<div class="buttons-arrow"></div>
<div class="buttons">
<a href="/" class="btn cancel">キャンセル</a>
<button type="submit" class="btn primary-btn js-submit">ログアウト</button>
</div>
<div class="aside">
<p>
いつでも取り消すことができます
</p>
</div>
</form>
ログアウトはbuttonタグで設定されているのが分かりますね。
次に指定したタグをクリックする「tagClick」を利用して、buttonタグに「ログアウト」が含まれるタグをクリック処理します。
ログアウトが完了したら、再度「ieNavi」でログイン画面を表示されます。
'ツイッターログイン処理
Call formText(objIE, "session[username_or_email]", "★ツイッターID★")
Call formText(objIE, "session[password]", "★ツイッターPASS★")
Call tagClick(objIE, "button", "ログイン")
こちらでは、ログインするための情報を入力し、ログインボタンをクリックしています。こちらもHTMLソースを見てみましょう。
<form action="https://twitter.com/sessions" class="t1-form js-signin signin" method="post">
<fieldset>
<legend id="signin-form-legend" class="visuallyhidden">ログイン</legend>
<div class="textbox">
<label class="t1-label username js-username">
<span>電話番号、メールアドレスまたはユーザー名</span>
<input class="js-username-field email-input js-initial-focus" type="text" name="session[username_or_email]" autocomplete="on">
</label>
<label class="t1-label password js-password">
<span>パスワード</span>
<input class="js-password-field" type="password" value="" name="session[password]">
</label>
</div>
<div class="subchck">
<button type="submit" class="btn submit">ログイン</button>
<label class="t1-label remember">
<input type="checkbox" value="1" name="remember_me" checked="checked">
<span>保存する</span>
</label>
</div>
<input type="hidden" name="scribe_log">
<input type="hidden" name="redirect_after_login" value="">
<input type="hidden" value="a767ae60d59dbe0cab78d96d6e4c9cb331342c4d" name="authenticity_token"/>
</fieldset>
<div class="divider"></div>
<p class="footer-links">
<a class="forgot" href="/account/begin_password_reset">パスワードを忘れた場合はこちら</a><br />
<a class="mobile has-sms" href="/account/complete">既にテキストメッセージで Twitter をご利用ですか?</a>
</p>
</form>
フォームのテキストボックスに入力する「formText」を利用して、inputタグに「session[username_or_email]」が含まれるテキストボックスへ「★ツイッターID★」を入力します。
次に、inputタグに「session[password]」が含まれるテキストボックスへ「★ツイッターPASS★」を入力します。
これで、ツイッターID/PASSが入力されました。
最後に「tagClick」を利用して、buttonタグに「ログイン」が含まれているタグをクリック処理をします。
これでログインが完了となります。
続いてIEのバージョンが8以下の場合を見ていきましょう。
'ツイッターログイン画面表示
Call ieView(objIE, "https://mobile.twitter.com/i/guest")
ツイッターのログイン画面を表示させます。
'ログインチェック
If objIE.LocationURL <> "https://twitter.com/login" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "https://mobile.twitter.com/account")
Call tagClick(objIE, "input", "ログアウト")
Call ieNavi(objIE, "https://mobile.twitter.com/i/guest")
End If
こちらもバージョン9以上の処理と同様になります。
「LocationURLプロパティ」から現在表示されているURLを取得し、ログイン画面のURLかをチェックしています。
ログイン画面のURLでない場合は、ログアウト処理を行います。
モバイル版のログアウトは「https://mobile.twitter.com/account」にアクセスしログアウトボタンをクリックする処理になりますので、「ieNavi」にてアカウント管理画面にアクセスします。
次に指定したタグをクリックする「tagClick」でログアウトボタンをクリックします。
ログアウトが完了したら、再度「ieNavi」でログイン画面を表示されます。
'ツイッターログイン処理
Call formText(objIE, "username", "★ツイッターID★")
Call formText(objIE, "password", "★ツイッターPASS★")
Call tagClick(objIE, "input", "ログイン")
こちらも同様にログイン処理をしていきます。
「formText」を利用して、inputタグに「username」が含まれるテキストボックスへ「★ツイッターID★」を入力します。
次に、inputタグに「password」が含まれるテキストボックスへ「★ツイッターPASS★」を入力します。
これで、ツイッターID/PASSが入力されました。
最後に「tagClick」を利用して、inputタグに「ログイン」が含まれているタグをクリック処理をします。
これでログインが完了となります。
次はこちらの自動ログイン処理のサブルーチン化について解説していきます。
次の記事: VBAのIE操作でツイッター自動ログイン・ログアウト2 >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。