Hatena::Groupactionscript

ConquestArrow.addEventListener();

2012-12-03

[][]Twitter APIへのアクセスに苦戦(※追記あり) 01:16 はてなブックマーク - Twitter APIへのアクセスに苦戦(※追記あり) - ConquestArrow.addEventListener();

  • 環境:FD 4.2.1RTM + FlexSDK4.6 + AIR SDK3.5

1. Tweetr は(PINコードなしでは)うまく動かない

AIR Mobile(iOS/Android)向けに使えるライブラリが無いかと探したところ、ライブラリ一つでOAuth認証まで対応しているというTweetr http://wiki.swfjunkie.com/tweetrを発見。

DLリンクではなくリポジトリから配布してある最新のSWCをゲット。

http://svn.swfjunkie.com/tweetr/trunk/swc/

* `tweetrMOBILE.swc`がAIR Mobile向け

色々試してみたが、結論から言うとうまく動かない追記:動いた。後述。

TwitterOAuth認証では、

  1. WEB向け(PINなし)
  2. アプリクライアント向け(PINあり)

の2種類があって、1番目に対応、というのがTweetrの売りなのだが、どうもうまくいかない。

PINコードなしの設定をしていても、コールバックURLを指定しないとPINコードの画面に飛ばされてしまう。

あきらめてアプリ側で入力させてもいいのだが、正直アプリのUXとしては使いにくいのでできれば避けたい。

ソースのコメントにはコールバックURLが必要だよ、とのことなので適当に入力するが、今度は実行時にエラー。

error #2032 stream error

ライブラリのサポートフォーラムにも同様の報告があるが、解決したという情報はなし。

さてこまった。

そこで、SVNからライブラリのソースコードを丸ごと落として、

traceなりエラー判断なりでいろいろ出力してみた。

どうもHTTPのレスポンスヘッダで401が返ってきている。OAuthがそもそもうまくいっていないようだ。

TwitterAPIのドキュメントと、`com.swfjunkie.tweetr.oauth.OAuth`のコードを見比べていてふと気が付く違和感。

TwitterAPIドキュメントには

https://api.twitter.com/oauth/request_token

はPOSTなのだが、OAuth.asではGETでリクエストしている。どうも、GETでもTwitterAPIが有効だったという情報も得る。

推測するにライブラリに手の入っている今年前半まではTwitterAPIは受け付けていたが、先日ver1.1になった際に厳格になったのではないか…。

実際Tweetrのサンプルもうまく動いていない。

そこでGETで送られている部分をPOSTに書き換えてみるが、OAuthの仕様から見る羽目になりほとんど自分で書いているに近い。

しかもやはりうまく動かない。

力尽きる。

追記:重大なケアレスミス。

POSTじゃないとダメというのは勘違いで、GETでもOK。Twitterにアプリを登録する場合にコールバックURLを登録しておく必要がある。無事に承認可能。…OAuthに詳しくなったので良しとするか…。

2. 別のライブラリを探す

色々使用例があるライブラリ。TwitterAPIにはこれとTweetrと組み合わせも考えた。ただし、ライブラリがいろいろ混じって訳が分からなくなりそうだ。保留。

情報がほとんどないが見つけたライブラリ。ドキュメントが全然ない。コード中の開発者名から日本人の人が作っている様子。しらべると、Saezuriの内部ライブラリのようだ。SaezuriはAIR製クライアントとして実績があるので、これはいい。←イマココ

検証中。

さあ、そもそもAPIをたたけるようになるまでいつになったら到達するのか?


3.Twitterを使うのにハマりポイントまとめ

のちのちの為にまとめてみる。

  1. TweetrをAIR Mobileで使う場合は tweetrMOBILE.swcを使う
  2. PINコードを入力させないで使うには、コールバックURLの指定が必須
    • Twitterのアプリ登録、Tweetr内部それぞれ
  3. Tweetr以外にはas3twitterlibというライブラリもある

SayfSayf2012/12/27 10:18Ya learn somehtnig new everyday. It's true I guess!

bqkmdnbqkmdn2012/12/27 19:18woLuIV <a href="http://rdihxemxomtn.com/">rdihxemxomtn</a>

トラックバック - http://actionscript.g.hatena.ne.jp/ConquestArrow/20121203