OAuth認証

twitterOAuth認証は難しい。私が何も分かっていない中で、完全な手順を網羅したブログを探せども探せどもないのだから、解決は難しい。あきらめるか、腹をくくって、一から情報を自分のものにしながら進めるかのどちらかしかない状態だ。暇ではないが、プログラムが出来るか否かというのは、今後非常に重要だと僕は最近やっぱり思っている。営業は大体できるようになった。アイデアは考えるのはタダで、考えるのも好きな方だ。あとは語学力とプログラム能力なのだ。語学はそりゃやるとしても、プログラムは腹をくくらないと出来ない。あと5年で34歳だ。それまでにプログラムもプロ並みになっておこう。ということで、今日は一からOAuth認証を倒すために、コツコツコツコツと調べていきたいと思います。急がば回れの精神で進めたいと思います。


http://www.atmarkit.co.jp/fsecurity/special/106oauth/oauth02.html
上記はOAuth認証プロトコルのフローを説明している。大きく3つに分けられるようだ。
①コンシューマ登録、②リクエストークン要求とユーザの同意確認、③アクセストークン要求とAPI接続


①コンシューマ登録はtwitterの場合分かりやすく、解説ページも至る所にあるので問題ない。それに作業が完全に分離されている。問題は、②③の流れがPHPOAuth認証サンプルコードのどこにあたり、サンプルコードの後でどういったプログラムを組む必要があるのかについて、全く認識/想像ができない点だ。よって、②③の流れをしっかりと把握しつつ、サンプルコードのソースの意味を把握する必要がある。今日はこれに3時間使おう。3時間じゃ終わらないだろうが。。


②リクエストークン要求とユーザの同意確認

(1) ユーザーはコンシューマのサービスを利用するために、Webブラウザでコンシューマにアクセスする。
(2) コンシューマはユーザーからサービスプロバイダのリソースを利用する意思を確認した後、サービスプロバイダに接続して「リクエスト・トークン」の発行を要求する。この際、コンシューマ・キーや、コンシューマ・シークレットを使って生成したサイン値などをパラメータとして渡す。
(3) サービスプロバイダはコンシューマから送られてきた値を確認した後、未承認の(Unauthorized)リクエスト・トークンをコンシューマに返す。
(4) 未承認のリクエスト・トークンを受け取ったコンシューマは、リクエスト・トークンにユーザーの承認を取るために、未リクエスト・トークンとともにユーザーをサービスプロバイダにリダイレクトする。
(5) サービスプロバイダはまずユーザーにログインを要求し、クレデンシャル(ユーザーIDやパスワードなど)を確認する。ユーザー認証が成功したら、ユーザーにコンシューマがアクセスするユーザーリソースの内容と条件を表示し、同意の確認を促す。
(6) ユーザーの同意が取れたら、リクエスト・トークンを「承認(Authorized)」にして、ユーザーとともにコンシューマへリダイレクトして返す。ユーザーが同意しなかった場合は「拒否(Denied)」にして返す。


③アクセストークン要求とAPI接続

(1) コンシューマは承認済みのリクエスト・トークン、コンシューマ・キー、コンシューマ・シークレットで生成したサイン値などをパラメータとしてサービスプロバイダに送って、「アクセス・トークン」の発行を要求する。
(2) サービスプロバイダはコンシューマから送られてきたパラメータの値を確認し、問題がなければ、APIへの接続に必要なアクセス・トークンとそれを署名するのに利用する「トークン・シークレット」をコンシューマに返す。
(3) コンシューマはアクセス・トークン、コンシューマ・キー、トークン・シークレットで生成したサイン値などをパラメータとして送り、ユーザーリソースの入り口であるAPIに接続を要求する。
(4) サービスプロバイダはそれぞれのパラメータの値を確認し、問題がなければ、APIの応答データをコンシューマに返す。以後、サービスプロバイダがアクセス・トークンに付与した条件(リソースの種類・期間など)に応じて、コンシューマは(3)を繰り返してAPIを経由してユーザーのリソースにアクセスする。

Wordpressのデータをはてなへインポートする方法

Wordpressのデータをはてなダイアリーにインポートする場合、ひと手間必要です。はてなは、MT形式でないとインポートができないので、単純にWordpressのデータをインポートしようとしてもエラーになります。そこで、WordpressのデータをMT形式に変換してくれるサービスを活用します。


小物置き場『WxrToMt』
http://komono.jp/contents/software/web/wxrtomt/

twitter API開発でしっておくべきこと

しっておくべきことがまとめてあったので一応リンクしておく。あんまりたいしたことは書いていないようだが、たいしたことないことまで覚えてないとなるとそれはいかんぜよ。


Twitter APIで開発をするために知っておくべきこと
http://seolab.capoo.jp/twitter/api/twitter-api

twitter API 

twitter APIは、難しいようで意外と簡単な仕組みのようだ。


Twitter REST API の使い方
http://www.ibm.com/developerworks/jp/xml/library/x-twitterREST/


このサイトは、非常に分かりやすくtwitterAPIの概要を説明してくれている。


Twitter Search API の使い方
http://www.ibm.com/developerworks/jp/xml/library/x-twitsrchapi/


こんなサイトもあるので、今度勉強しよう。


あと、twitterAPI仕様書の日本語訳がこれだ。
http://watcher.moe-nifty.com/memo/docs/twitterAPI49.txt


以上を読めば、大体分かるはずだ。しかし、twitterAPIはOAuth認証が必要で、今後Basic認証はNGになるので、OAuth認証への対応が必須である。これをマスターしないといけないので、勉強中だ。


↓その他の、twitter API解説ページ


Twitter APIとGAEでおもしろWebサービスを作ろう!
http://ascii.jp/elem/000/000/512/512629/


ゼロから分かる、GAE&Twitter API開発の始め方
http://ascii.jp/elem/000/000/514/514588/


サンプルコードで分かるGAE&Twitter API開発
http://ascii.jp/elem/000/000/517/517471/


PHPTwitter APIのOAuthを使う方法まとめ
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php


PHP+OAuthでTwitter
http://www.sdn-project.net/labo/oauth.html


PHP+OAuth でTwitter連携アプリを作る!(Botも作れるよ!) [準備編]
http://1tb.me/report/02


Twitter APIPEAR::Services::Twitterで全フォロワーの情報を取得
http://d.hatena.ne.jp/hideack/20100417/1271462714


プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/


Twitter REST API Method: statuses public_timeline
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-public_timeline


Using the Twitter API with PHP and PEAR
http://devzone.zend.com/article/4431