2011-12-17
JavaScriptでTwitterのOAuthをなんとかする
(ブラウザ上の)JavaScriptでは、同一出身ポリシーとやらで別ドメインのサイトとの情報のやりとりが基本的にはできないらしい。そのためOAuthの認証を通すのが面倒なので、なんとかする方法を調べたメモ。
1. フォームで送信+コピペ
フォームを使ってTwitterに情報を送信し、表示されたものを手動でコピペして認証を進める。XMLHttpRequestを使えば自動化できるはずだけど、同一出身ポリシーにひっかかるので普通は無理?
参考: http://code.google.com/p/oauth/ (JavaScriptのコードはSource->Browse->code->javascript)
2. PHPを併用
認証はPHPで行い、入手したアクセスキー(access token/access token secret)をJavaScriptに渡す。渡し方はPHPでhtmlにアクセスキーを書いてJavaScriptで読むだけ。簡単だけどアクセスキーをhttpで流すのはいいんだろうか……?
参考: jQuery plugin for Twitter OAuth via popup window (Facebook style) - zuzara
3. Twitter @Anywhereを利用
Twitter @Anywhereはブラウザ(JavaScript)から簡単にTwitterAPIを利用できるサービスで、OAuthで認証も楽。ただしFollow buttonsやTweet Boxなど少数の限定された機能しか提供されてない。が、なんかごにょごにょすると任意のAPIを叩けるらしい。(試してみたら上手くいかなかったけど……)
参考: Twitter @Anywhere を斜め上に掘り下げる - snippets
4. proxyサーバを立てて認証を含むTwitterとの通信を任せる
これが一番綺麗な気がする。↓サイトのライブラリを使うと、通常のTwitterAPIを使うのとほぼ変わらずにいけた。すごい。
参考: TwitAPI.js - OTCHY.NET
やっぱりJavaScriptだけでなんとかするのは難しい?