blog.sorah.jp

Twitter APIのパーミッションレベルが変わるそうです

Twitter の OAuth のパーミッションレベルが新しくなり,標準ではダイレクトメッセージにアクセスできなくなるようです.

また,xAuth などで認証している「サードパーティ」アプリケーションは新パーミッションレベルでも ダイレクトメッセージにアクセスできなくなるみたいです.

この改良は待ち望んでいたものの,xAuthでアクセスできなくなるのは痛いですね.

http://groups.google.com/group/twitter-api-announce/browse_thread/thread/e954fc0f8b5aa6ec?pli=1

からの翻訳です.

また,移行期間の変更について http://groups.google.com/group/twitter-development-talk/msg/dbe591c0088a4b18 で書かれている内容を反映しています.

そして以下の内容については保証しません.最新の情報はtwitter-api-announce,twitter-api-talkなどを見てください.

やあ.

わたしたちは最近,OAuth の認証画面でアプリケーションに渡される権限を わかりやすくする変更を加えました.Twitter ユーザー・デベロッパーから の貴重なフィードバックが私たちの変更を助け,どこをはっきりさせたほう がいいかを教えてくれました.

ユーザーとデベロッパー双方から,さらに細かいパーミッションレベルを 設定したいという要望が特に多かったです.

このフィードバックへの返答として,わたしたちは新たなパーミッション レベルを作成しました.それは "Read, Write & Direct Messages" です. このパーミッションレベルは Read, Write に加えダイレクトメッセージを Read, Delete することを許可します. そしてこのパーミッションを施行するとき,既存の "Read & Write" の パーミッションのアプリケーションはダイレクトメッセージをRead, Delete することができなくなります.

そしてまた,わたしたちはこのパーミッションを適用するのは OAuth のみに 絞りました.xAuth はこのパーミッションを適用することができず,OAuthの /authorize を用いた Web でのフローのみで適用されます.

これは,xAuth を使っていてダイレクトメッセージにアクセスする必要性があ る場合は OAuth と Web ページを利用して認証する必要があるということを 意味します.

この改善についてアプリケーションはにはどのような変更すれば良いのか?

もしダイレクトメッセージにアクセスする必要がない場合: あなたはアプリケーションに何も変更を加える必要はありません. この新パーミッションレベルが施行されるとき,あなたのアプリケーション に登録されている read もしくは read/write レベルのアクセストークンは ダイレクトメッセージにアクセスすることができなくなります.

もしダイレクトメッセージにアクセスする必要がある場合: あなたはまず, https://dev.twitter.com/apps からあなたのアプリケーシ ョンのパーミッションレベルを変更する必要があります. そしてそのパーミッションは既に存在しているトークンについては反映され ないので,ユーザーに再度認証してもらう必要があります.

わたしたちはこの変更に時間が必要なことを理解しています.そこで,2011/6/14までを移行期間とします.移行期間中は,まだ Read/Write レベルのトークンはこの変更の影響を受けませんが,移行期間が 終わってからはダイレクトメッセージにアクセス・削除することができなくなります.

影響を受ける API と リクエスト

REST APIに置いて,Read と Read/Write アプリケーションは以下のAPIを利用 することができなくなります:

  • /1/direct_messages.{format}
  • /1/direct_messages/sent.{format}
  • /1/direct_messages/show.{format}
  • /1/direct_messages/destroy.{format}

ストリーミングAPIについては, User Streams と Site Streams はユーザーが ダイレクトメッセージへのアクセスを認可した場合のみ,ダイレクトメッセージを 受信するようになります.

また, "Sign-in with Twitter" か xAuth を使っているアプリケーションは Read か Read/Write のトークンのみを得ることができるようになります.

つまりこれは,Webページを利用して OAuth 認証をするアプリケーションのみが ダイレクトメッセージに対してアクセスできるトークンを受け取ることができる という事です.その他のxAuthを含む認証手段は Read/Write レベルのトークン のみを受信するようになります.

このパーミッションが適用されたとき何が起こるのか?

わたしたちがこの新パーミッションレベルを適用したとき,全ての Read と Read/Write レベルのサードパーティアプリケーション向けのアクセストークン はユーザーのダイレクトメッセージを読めなくなります.あらゆるダイレクト メッセージの読み込みリクエストに対して HTTP 403 エラーを返すようになり ます.

たとえば,次のURL: https://api.twitter.com/1/direct_messages/sent.json に対して GET リクエストをすると HTTP 403 Forbidden ステータスコードと 以下のレスポンスボディーが返ってきます:

{"errors":[{"code":93,"message":"This application is not allowed to access or delete your direct messages"}]}

キーポイント

  • もしユーザーのダイレクトメッセージにアクセスする必要がある場合,あなたは アプリケーションのパーミッションレベルを変更,またユーザーに再認証してもらい 新しいトークンを得る必要があります.
  • ダイレクトメッセージにアクセス出来るのは OAuth /authorize web フローのみで す.たとえば,xAuth を利用して認証した場合ダイレクトメッセージへのアクセスは 許可されません.
  • わたしたちがこの新パーミッションレベルを施行したとき,既存の全ての Read/ Write と Read パーミッションレベルのトークンはダイレクトメッセージにアクセス ,削除することができなくなります.
  • ただし,Read/Write については施行後も引き続きダイレクトメッセージの送信は 許可されます.

わたしたちはまもなく新しい情報を developer resources permission model ページ に掲載します:

https://dev.twitter.com/pages/application-permission-model

また,私たちは今回の件について twitter blog にエントリーしました:

http://blog.twitter.com/2011/05/mission-permission.html

Best, @themattharris

Backfilled at , Published at