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