tw2mvをTwitterのxAuthに対応させたメモ

標準

TwitterのBasic認証が6月末に終了するということで、やっとこさmixiボイスへの転送スクリプト”tw2mv”をxAuthに対応させてみました。

xAuthはOAuthの簡易版ですので、可能な限りOAuthで実装するのが筋だと思います。
ただ、本スクリプトはコマンドラインスクリプトのため、OAuthでWebの画面を開いて認証させるのは余計な手間がかかると判断しxAuthを採用しています。

1. Twitterへのアプリケーション登録

通常のOAuth利用と同じく、ConsumerKeyが必要なのでアプリケーションの申請を行います。

https://twitter.com/apps/new
クライアントアプリケーションなので「あなたの招待状」の部分を「送信」で登録。(日本語訳がおかしいですね。。)

2. xAuthの利用申請メール

Using xAuth | dev.twitter.com

xAuth access is restricted to approved applications. If your application is a desktop or mobile application and the standard web OAuth flow or PIN-code out-of-band flow is not right for you, send a detailed message to api@twitter.com to request xAuth privileges. Include the name of your application, the consumer key, the application ID (if available), and a summary of how xAuth is best-suited for your application.

api@twitter.com宛にメールで利用の申請をしてねとのことなので、メール(英語)でお伺いを立てました。

タイミングもあったと思いますが、申請から8hで承認がおりました。thanks!
(よく見たら、ConsumerKeyもメールに書いておいてねとある。。

3. OAuthライブラリ

pearのHTTP_OAuthを利用しました。

4. コードの変更

ざくっと、修正のポイント。

4.1. OAuthオブジェクトの生成

SSL通信でOAuthを利用できるように下準備しておきます。

4.2. Access Tokenの取得

Access Token を取得するには、x_auth_username、x_auth_passwordにユーザ名とパスワード、x_auth_modeを”client_auth”としてPOSTしてくれとのことなので、その通りに。
tw2mvでは、Twitterクライアントクラスのコンストラクタ内でやっちゃってます。

取得したAccess Tokenを、HTTP_OAuth_Consumerオブジェクトにセットするのを忘れずに。

4.3. メソッドの書き換え

今まで、HTTP_Request2を利用してリクエストを行っていた部分を、HTTP_OAuth経由で送信するようにしました。

post_requestメソッドは何の変哲もなく、こんな感じ。

実際のスクリプトの変更内容はこちらです。
Commit ea57ced14b323dfe39f037dcdc3aca5babbcb590 to nojimage’s twitter2mixivoice – GitHub

参考サイト:

One Comment

  1. Pingback: Tweets that mention tw2mvをTwitterのxAuthに対応させたメモ @ php-tips -- Topsy.com

コメントを残す

Page optimized by WP Minify WordPress Plugin