アジョブジ星通信

進捗が出た頃に更新されるブログ。

Via.Meのアップロードはtwiccaにのみ許された所業

f:id:azyobuzin:20130320132417p:plain

いつの日の事だったか、 Via.Me の API が一般公開されたときは特に関心を持ってなかったのですが、よくみてみると、これドキュメントにはどこにも OAuth Echo での投稿方法が書いてないんですね。

Via.Me Developers

公式のドキュメントにしたがって投稿するには、また別に認証をしなきゃいけないみたいです。というわけで、本当に OAuth Echo で投稿できないのか調査してみました。まぁタイトルで結果はわかりますよね?

とりあえずアップロード API に OAuth Echo で投げてみる

一から OAuth Echo ヘッダをつくるコードを書くのは面倒なので、 Krile を改造してやってみました。追加したコードはこんな感じ長いですけど、ほぼコピペです。

そしてこれを実行すると、

System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません

{"error":{"message":"unauthorized","status":401}}

まぁ予想はできたよね。

twicca の通信をキャプチャしてみる

Shark for Root でキャプチャして PC の Wireshark で見てみました。

f:id:azyobuzin:20130320134400p:plainオリジナルサイズ

そもそも、 upload.json という別のエンドポイントを使ってるようです。

upload.json を使ってみる

System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません

{"error":{"message":"unauthorized","status":401}}

はい。

key パラメータを指定してみる

キャプチャ結果をよくみると、 key というフィールドがあります。というわけで、 Client ID を取得して、 key に突っ込んでみました。

System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません

{"error":{"message":"unauthorized","status":401}}

何かの間違いだよね?懲りずに Client Seret を突っ込んでみました。

System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません

{"error":{"message":"unauthorized","status":401}}

twicca の key を使用してみる

どこかコードが間違ってるのかと思い、 twicca の key を拝借してやってみました。

結論

twicca マジ業務提携結んでるとしか考えられない。