TIG(TweetIrcGateway/旧TwitterIrcGateWay)2.5へのバージョンアップでOAuth対応するときに注意するたった1つのこと
TIG2.5へのバージョンアップでOAuth対応するときに見事にハマってしまった。
気をつけることはただ1つ、これだけ。
config.xmlのあるフォルダ名を「username/ユーザ名」ではなく「Name/名称」にすること。
C:\Program Files\TwitterIrcGateway\Bin\Configs\orangeclover\Config.xml
何回もOAuthの設定をやり直したり、IRC側のユーザ名を発行された数字にしてみたり、
空にしてみたり、何時間も格闘したがだめで休憩。
- OAuthAuthentication.cs
namespace Misuzilla.Applications.TwitterIrcGateway.Authentication { public class OAuthAuthentication : IAuthentication { #region IAuthentication メンバ public AuthenticateResult Authenticate(Server server, Connection connection, UserInfo userInfo) { // ニックネームとパスワードのチェック if (String.IsNullOrEmpty(userInfo.Nick)) { return new AuthenticateResult(ErrorReply.ERR_NONICKNAMEGIVEN, "No nickname given"); } // OAuth ログイン/設定 if (String.IsNullOrEmpty(userInfo.Password)) { connection.SendGatewayServerMessage("* OAuth 認証の設定を開始します..."); return new OAuthContinueAuthenticationResult(); } else { var config = Config.LoadConfig(userInfo.UserName); // HOSTING => 番号的 ID になる // xAuth fallback ★ここ★ if (true && String.IsNullOrEmpty(config.OAuthUserPasswordHash)) { return new XAuthAuthentication().Authenticate(server, connection, userInfo); } connection.SendGatewayServerMessage("* アカウント認証を確認しています(OAuth)..."); // OAuth 設定未設定 if (String.IsNullOrEmpty(config.OAuthAccessToken) || String.IsNullOrEmpty(config.OAuthTokenSecret)) { connection.SendGatewayServerMessage("* OAuth 認証の設定を開始します..."); return new OAuthContinueAuthenticationResult(); }
ソース見て、config.xmlからOAuthUserPasswordHashが取得できないとxAuthの認証に行くことがわかった。
でもconfig.xmlにはOAuthUserPasswordHashのタグはある。
考えられるのは、フォルダ名誤りか。
「username」以外にある名前というと「Name」か。
フォルダ名を「orange_clover」から「orangeclover」に変更したらあっけなく動作した。
おーす。。。
以下バージョンアップの手順
TIG2.5をダンロード
http://www.misuzilla.org/dist/net/twitterircgateway/
TwitterIrcGateway-2.5.3878.22593.zip
TIG、IRCクライアントを停止
バックアップ
以下のフォルダをバックアップ
C:\Program Files\TwitterIrcGateway\Bin\Configs
モジュールの上書き
TwitterIrcGateway-2.5.3878.22593.zipを回答したものを
以下に上書き
C:\Program Files\TwitterIrcGateway\Bin
TIG、IRCクライアントを起動
BASIC認証のままのユーザ名とパスワードだと以下のエラーになる。これは無視し構わない。
13:25 Created 13:25 localhost:16669 接続中... 13:25 接続完了...サーバーからの返事待ち... 13:25 * アカウント認証を確認しています(xAuth)... 13:25 * アカウント認証に失敗しました。ユーザ名またはパスワードを確認してください。(Invalid user name or password) 13:25 パスワードが正しくありません。パスワードは「設定」->「IRC...」で設定できますので設定しなおしてください。 13:25 回線が切断されました
IRCのパスワードをクリアー
OAuthの認証、PINコードのURLを表示させる
パスワードをクリアーして、再度接続すると以下のメッセージが出力される
- Consoleに表示されるメッセージ
13:26 Your nick is orange_clover 13:26 *** Welcome to the Internet Relay Network orange_clover!orangeclover@127.0.0.1 13:26 *** This server was created 2010/08/15 13:26:00 13:26 ??? : :localhost 004 orange_clover :ORANGE Misuzilla.Applications.TwitterIrcGateway.Server-2.5.3878.22593 13:26 Connection Attached: Session: User=orangeclover, Client=127.0.0.1:3418
- $OAuthに手続きに必要なメッセージ
13:26 Created 13:26 =$OAuth= 次のURLをブラウザで表示してアプリケーションのアクセスを許可してください。また、許可のあと表示される暗証番号(PINコード)を入力してください。 13:26 =$OAuth= https://api.twitter.com/oauth/authorize?oauth_token=省略
tokenは念のため伏せておきます。
OAuthのPINコードの入力
13:26 =$OAuth= 次のURLをブラウザで表示してアプリケーションのアクセスを許可してください。また、許可のあと表示される暗証番号(PINコード)を入力してください。 13:26 =$OAuth= https://api.twitter.com/oauth/authorize?oauth_token=省略 13:28 >$OAuth< 【PINコードの数字】 13:28 =$OAuth= ユーザー orange_clover (ID:37914199)として認証されました。
TIGを接続するためのパスワードを入力
13:28 =$OAuth= IRCクライアントに設定するためのパスワードを入力してください。 13:29 >$OAuth< 【パスワード】 13:29 =$OAuth= OAuth用のパスワードを設定しました。IRCクライアントの接続設定のパスワードに設定したパスワードを指定して再接続してください。
configのフォルダ名を変更
変更前 C:\Program Files\TwitterIrcGateway\Bin\Configs\orange_clover 変更後 C:\Program Files\TwitterIrcGateway\Bin\Configs\orangeclover
接続
- Console
13:31 localhost:16668 接続中... 13:31 接続完了...サーバーからの返事待ち... 13:31 * アカウント認証を確認しています(OAuth)... 13:31 * アカウント: orange_clover (ID:37914199) 13:31 Your nick is orange_clover 13:31 *** Welcome to the Internet Relay Network orange_clover!orangeclover@127.0.0.1 13:31 *** This server was created 2010/08/15 13:31:19 13:31 ??? : :localhost 004 orange_clover :ORANGE Misuzilla.Applications.TwitterIrcGateway.Server-2.5.3878.22593 13:31 Connection Attached: Session: User=orangeclover, Client=127.0.0.1:3479 13:31 * 設定を読み込んでいます... 13:31 * セッションを開始しました。 13:31 * アドインを読み込んでいます... 13:31 * アドインを読み込みました。
トラブルシューティング
エラー内容が以下の場合
13:26 Connection Attached: Session: User=orangeclover, Client=127.0.0.1:3418 13:30 回線が切断されました 13:30 localhost:16668 接続中... 13:30 接続完了...サーバーからの返事待ち... 13:30 * アカウント認証を確認しています(xAuth)... 13:30 * アカウント認証に失敗しました。ユーザ名またはパスワードを確認してください。(Invalid user name or password) 13:30 パスワードが正しくありません。パスワードは「設定」->「IRC...」で設定できますので設定しなおしてください。 13:30 回線が切断されました
OAuth認証したはずなのに、「アカウント認証を確認しています(xAuth)...」のエラーが
でてる場合は以下を確認。
1.config.xmlにOAuthUserPasswordHashがあるか
ある→2.へ
ない→OAuth認証のやり直し
2.consoleに出力される以下のユーザ名とconfig.xmlのディレクトリ名を確認
Connection Attached: Session: User=orangeclover, Client=127.0.0.1:3418
違う→3.へ
同じ→Twitterのsettging > connection から TweetIrcGatewayをremoveして(不要かも)、もう一度OAuth認証のやり直し。
3.Twitterサイトで 「username/ユーザ名」「Name/名称」を確認する
4.configのフォルダ名を「Name/名称」に変更する。
C:\Program Files\TwitterIrcGateway\Bin\Configs\【Name】\Config.xml
接続できた→完了
接続できない→5.へ
5.configのフォルダ名を「2.で確認したUser」変更する。
C:\Program Files\TwitterIrcGateway\Bin\Configs\【2.のUser】\Config.xml
接続できた→完了
接続できない→僕には分かりません。作者か詳しい人にTwitterなどで聞いてください。
メインのTwitterクライアントは、あくまでTweenなのだ。
iPhoneの場合は、Twitbirdを使っている。
両方ともにOAuthでアクセスしてるので迷わず、TIGをもOAuthにした。
OAuthとxAuthの違いを調べてみたら、OpenTIGにつなぐわけでもなく、
デスクトップクライアントなんだからxAuthでも問題ないですな。