2010年1月アーカイブ

 以前、「Twitterクライアントで名前だすしくみ、どうやってんだろう」と思って、軽く Pythonで書いて放置してたけど、OAuthで困ってる人が私以外にもおられるよーなので、さらしてみます。
 ただし、テキトーにやったので妙なことあるかもしれません。そこは気にせずどーぞ!(まぁ軽く軽く)

■ はうつー作成 twitter desktop client(全自動版) ■ 

 必要なものは twitter.comに client登録したときのメールにだいたい書いてあります。

  • Consumer key
  • Consumer secret
  • ログインするための自分のアカウント(当然ですね)

 これだけを元に、一気に自作クライアントで TL取得&発言できるところまでもっていきます。
で、その sample code(Python)はこちら。twitapi_test.py 

 ちなみに、oauth, simplejson, BeautifulSoupを easy_installしておいてください。本当に必須なのは oauthぐらいなもんですが。

● この sample codeの 動作手順 ●
  1. Request Token URLに対して、Consumer Key,Consumer Secretに HMAC_SHA1でサインしたリクエストを投げます。
    URL(get_unauthorized_request_token): https://twitter.com/oauth/request_token?oauth_nonce=XXXXXXX&oauth_timesta mp=XXXXXXXXX&oauth_consumer_key=(もらったConsumerKey)&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oaut h_signature=XXXXXXXXXXXXXX

  2. その返事として、oauth_token_secret, oauth_token等がかえってきます。
    Token(authorize): oauth_token_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXX&oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback_confirmed=true

  3. もらった tokenをつかって認証用URLを作成します。
    URL(get_authorization_url): http://twitter.com/oauth/authorize?oauth_nonce=XXXXXXXXXX&oauth_timestamp=XXXXXXXXXXXXXXXXXXX&oauth_consumer_key=(もらったConsumerKey)&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=(さっきもらったoauth_token)&oauth_signature=XXXXXXXXXXXXXXXXXXXXXXXXXX

  4. その URLでアクセスすると、たぶんログインページに飛ばされるので、とりあえず自分の ID/passをつっこんで submitします。(twitter.comに client申請したときに loginいらないよモードだったら、このへんいらないかも?)

  5. ログインすると、画面に PINコードを表示する HTMLがかえってきます。このへん、desktopではなくサーバー上クライアントで申請するとリダイレクトURLになって返ってくるようですが、今回は無視。

  6. その HTMLから PINコードをバラします。(表示させて入力してもらうのも良いのですが、面倒なので直接ひっこぬきます)
    pin: (7桁くらいの数字)

  7. 最初にもらった認証用tokenとさっきもらった PINコード(OAuth的には verifierです)をつかって、TL見たり書きこんだりするためのアクセス用tokenを発行してもらいます。
    URL(access_token): https://twitter.com/oauth/access_token?oauth_nonce=XXXXXXXX&oauth_timestamp=XXXXXXXXXXX&oauth _signature_method=HMAC-SHA1&oauth_consumer_key=(もらったConsumerKey)&oauth_verifier=(ひろったPINコード)&oauth_version=1.0& oauth_token=(さっきもらったoauth_token)&oauth_signature=XXXXXXXXXXXXXXXXXXXX

  8. アクセス用tokenを取得。最初にもらった認証用tokenのことは忘れます。
    Token(access): oauth_token_secret=XXXXXXXXXXXXXXXXXXXX&oauth_token=XXXXXXXXXXXXXXXXXXXXXXXX

  9. あとは、適当にTwitter API referenceにのってる URLにアクセスしてやれば ok。読み書き自由な感じです。
    URL(home_timeline): http://twitter.com/statuses/home_timeline.json?oauth_nonce=XXXXXXXX&oauth_timestamp=XXXXXXX&oauth_signature_method=HMAC-SHA1&oauth_consumer_key=(もらったConsumerKey)&oauth_verifier=(ひろったPINコード)&oauth_version=1.0&oauth_token=(アクセス用token)&oauth_signature=XXXXXXXXXXXXXXXXXX

● 大切なこと ● 
 だいたい2つ。

  • 認証用トークンと、アクセス用トークンは別もの。
  • 何かするたびに、HMAC-SHA1でサインかけたリクエストで、GET/POSTする。

これさえ守れば、あとは適当にいけるかなと思います。
いじょ。

いつのまにか2010

| トラックバック(0)
 おやおや。twitterをヘビーに使いだしてから、こっちには何も書いていませんでしたな。
MovableTypeを4.xから5.01に更新したので、そのついでに。
いや、何かとりたてて書くことも別段ないのですが。まぁのんびりと仕事ありそうな、なさそうな。
そんなこんな。

 twitterの発言をまとめて、とかもありなのかもしれませんが。そのままコピペするんなら、最初から twitter sideみればいいしな〜とも思ったり。そんなこんなで。

このアーカイブについて

このページには、2010年1月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年10月です。

次のアーカイブは2010年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。