2011年6月13日
やあ、みんな。
先週末、ダイレクトメールメソッドとOAuth画面にいくつかの変更が行われました。 Here’s what went out:
This next parameter isn’t needed by everybody but we will be adding screen_name support to the authorize and authenticate pages in the next few days. If you want to add this to your code ready for when we release the feature you can, but please know the screen_name parameter will be ignored unless you also provide the force_login parameter. force_login にtrueが設定されている場合、OAuth 画面のユーザー名の入力欄にはscreen_name パラメータの値があらかじめ入力されます。 ユーザー名が事前に入力されていても、ユーザーをそれを変更することができます。
最後に、前回のメールやツイートで重い議論になった点は以下のように決まりました:
201年5月18日
やあ皆さん。
我々は最近、アプリケーションがユーザーのアカウントに対してどういったアクセス権を持っているのかをユーザーへ分かりやすくするため、OAuth 画面を更新しました。
再設計においてはTwitterユーザーや開発者からの貴重なフィードバックが大きな役割を果たし、我々がより多くのことをするための助けになりました。
具体的に言うと、ユーザーと開発者はアクセス権レベルのより細かい区分けを求めていました。
この要望に応えるため、我々は“Read, Write & Direct Messages”と呼ばれるアプリケーションの新しいアクセス権レベルを作成しました。 このアクセス権では、アプリケーションはユーザーのダイレクトメッセージの読み込みや削除をすることができます。 このアクセス権の適用が開始されると、“Read, Write & Direct Messages”トークンを持たないアプリケーションはダイレクトメッセージの読み込みや削除ができなくなります。 アプリケーションが自分のダイレクトメッセージにアクセスすることをユーザーに知らせるため、このアクセス権が使えるのは OAuth /authorize ウェブフローのみに制限しています。 つまり、xAuth を使ってダイレクトメッセージにアクセスするアプリケーションでは、ユーザーにフルのOAuth フローをさせなければなりません。
ダイレクトメッセージにアクセスする必要がない場合: あなたのアプリケーションを変更する必要はありません。新しいアクセス権レベルが適用されると、あなたの読み込みトークンや読み込み/書き込みトークンは自動的にダイレクトメッセージにアクセスできなくなります。
ダイレクトメッセージにアクセスする必要がある場合: https://dev.twitter.com/appsであなたのアプリケーションレコードを編集し、アプリケーションのアクセス権レベルを “Read, Write and Direct Messages”に変更する必要があります。新しいアクセス権に変更しても既に作成済みのトークンには反映されないので、既存ユーザーやアプリケーションやサービスでは改めて承認を行う必要があります。
これらの変更には時間がかかると思うので、今週末まで移行期間を用意しています。移行期間は、ユーザーアカウントのRead/Write トークンを持つアクセスについては変更されません。 しかし、今月末には “Read, Write and Direct Messages”へアップグレードしない全てのトークンはダイレクトメッセージへのアクセスや削除ができなくなります。
REST APIにおいて、読み込み権限アプリケーションや読み込み/書き込み権限アプリケーションでは、以下のAPIメソッドはもう使用できなくなりました:
ストリーミングAPIでは、アプリケーションがダイレクトメッセージへアクセスすることをユーザーが承認している場合には、ユーザーストリームとサイトストリームの両方でダイレクトメッセージの受信のみができます。
“Sign-in with Twitter”やxAuth を使用しているアプリケーションは、読み込み権限トークンか読み込み/書き込み権限トークンのみを取得できます。
つまり、ユーザーにOAuth ウェブフローを実施しているアプリケーションだけが、ダイレクトメッセージへアクセスするアクセストークンを取得することができます。 xAuthを含むその他全ての承認手順では、読み込み/書き込み権限トークンのみ取得できます。
この新しいアクセス権が適用された時、サードパーティ製アプリケーションに発行されている全ての読み込み権限user_tokensと読み込み/書き込み権限user_tokensは、ダイレクトメッセージを読み込むことができなくなります。ダイレクトメッセージを読み込もうとするとHTTP 403 エラーの応答結果が返るでしょう。
例えば、https://api.twitter.com/1/direct_messages/sent.json
へGET リクエストをすると、応答のbody部分に HTTP 403 Forbidden 記載されて返ってきます:
{"errors":[{"code":93,"message":"This application is not allowed to access or delete your direct messages"}]}
Twitter blogでも、この件について記載しています: http://blog.twitter.com/2011/05/mission-permission.html
アプリケーションのアクセス権モデル FAQについて説明したページも参照してください。