サイトのトップへ戻る

Twitter 開発者 ドキュメント日本語訳

アプリケーションのアクセス権モデル



目次



アクセス権モデルの変更に関するいくつかの更新

2011年6月13日

やあ、みんな。

先週末、ダイレクトメールメソッドとOAuth画面にいくつかの変更が行われました。 Here’s what went out:

  • https://api.twitter.com/oauth/authorize でforce_loginがサポートされました。
  • OAuth 画面がフィーチャーフォンをサポートし、シンプルな形式で表示されるようになりました。
  • “ダイレクトメッセージ”を表示するために全ての画面の言語が標準化されました
  • there is a “Return to App” URL on the Deny and Cancel screens that redirects the user to the oauth_callback url with a ‘denied’ parameter instead of oauth_token.

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 パラメータの値があらかじめ入力されます。 ユーザー名が事前に入力されていても、ユーザーをそれを変更することができます。

最後に、前回のメールやツイートで重い議論になった点は以下のように決まりました:

  • この新しいアクセス権モデルは6月30日に適用開始します。
  • ダイレクトメッセージの読み込みや削除をする必要がない場合は、あなたのアプリケーションのアクセス権レベルを更新する必要はありません。
  • 適用後も、読み込み/書き込みアプリケーションはダイレクトメールを送信することができます。
  • アプリケーションのアクセス権レベルを変更したとしても、現在使用している oauth_tokens は無効になりません。
  • APIへの認証済みリクエストのヘッダを調べることで、oauth_token の現在のアクセス権レベルが分かります。 X-Access-Level ヘッダを参照してください。


新しいアクセス権レベルのお知らせ

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”へアップグレードしない全てのトークンはダイレクトメッセージへのアクセスや削除ができなくなります。



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

REST APIにおいて、読み込み権限アプリケーションや読み込み/書き込み権限アプリケーションでは、以下のAPIメソッドはもう使用できなくなりました:

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

ストリーミング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"}]}


重要な点

  • ユーザーのダイレクトメッセージにアクセスしたい場合は、アプリケーションを更新したうえで現在しているトークンを再認証する必要があります。
  • ダイレクトメッセージを取得する唯一の方法は、 OAuth /承認ウェブフローを通してアクセスすることです。xAuthを使用する場合は、ダイレクトメッセージへのアクセスは許可されません。
  • このアクセス権が適用されると、読み込み/書き込み権限トークンと読み込み権限トークンではダイレクトメッセージへのアクセスや削除ができなくなります。
  • このアクセス権適用後でも、読み込み/書き込み権限トークンはダイレクトメッセージの送信は行えます。

Twitter blogでも、この件について記載しています: http://blog.twitter.com/2011/05/mission-permission.html



FAQ

アプリケーションのアクセス権モデル FAQについて説明したページも参照してください。