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 ページ
に掲載します:
また,私たちは今回の件について twitter blog にエントリーしました:
Best,
@themattharris