ログイン
ユーザーから承認を取得し、ユーザーに代わってアクションを実行する方法。
スコープの説明
アプリケーションを登録し、ユーザーを認証するとき、生成されたトークンに何を許可するかを正確に定義する必要があります。OAuthスコープを使用してこれを実行します。各々のAPIメソッドは関連付けられたスコープが存在し、承認に使用されているトークンが、対応するスコープで生成されている場合にのみ呼び出すことができます。
スコープは登録時に指定したものだけを使用しなければなりません。アプリケーションを作成するとき、read write follow push
と指定すると、ただ単にすべての使用可能なスコープを要求したということになります。しかし、もっと詳細なスコープを使用して、あなたのアプリが本当に要求している機能だけ要求したほうが良いです。OAuthスコープで全てのスコープの一覧を見ることができます。各々のAPIメソッドのドキュメントでもそのAPIにアクセスするために必要なスコープを記載しています。
認証コードによる認証の一例
これは以前の認証フローに似ていますが、今回はユーザーからも承認を取得する必要があります。
Client IDとシークレット
まず、まだクライアントアプリケーションを作成していない場合は、アプリケーションの作成を見るか、直接POST /api/v1/appsでこのメソッドのドキュメントを見てください。client_id
とclient_secret
を使用します。
ユーザーの認証
ユーザーを認証するために、GET /oauth/authorizeにブラウザでリクエストしてください。その際以下のパラメータが必要です。
https://mastodon.example/oauth/authorize
?client_id=CLIENT_ID
&scope=read+write+follow+push
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
&response_type=code
注意:
client_id
とclient_secret
はアプリケーションを登録するときに取得しています。scope
はスコープは登録時に指定したものだけを使用してください。必要なものだけを使用してください。OAuthスコープで詳細な情報を見ることができます。redirect_uri
はアプリケーション登録時に指定したURIのうちの一つです。この例ではまだ「アウトオブバンド」を使用しています。つまり、取得したコードを手動で入力しないといけないということです。しかし、URIを指定した場合、そのコードはcode
パラメータとして付与され、リクエストハンドラでログに格納されます。詳細は、APIメソッドのドキュメントのレスポンスセクションを見てください。
トークンの取得
今、認証code
を持っています。リクエストのユーザーを認証するためアクセストークンを取得しましょう。以前と同様POST /oauth/tokenします。違うのは取得した認証code
を渡すというところだけです。
curl -X POST \
-F 'client_id=your_client_id_here' \
-F 'client_secret=your_client_secret_here' \
-F 'redirect_uri=urn:ietf:wg:oauth:2.0:oob' \
-F 'grant_type=authorization_code' \
-F 'code=user_authzcode_here' \
-F 'scope=read write follow push' \
https://mastodon.example/oauth/token
注意:
client_id
とclient_secret
はアプリケーションを登録したときのレスポンスに含まれています。redirect_uri
はアプリケーション登録時に指定したURIのうちの一つです。grant_type
はauthorization_code
を指定しますが、それでもデフォルトでread
スコープが与えられます。ただし、ユーザーを認証する際に、特定のscope
を要求しましたはずです。今回もscope
に正確に同じ値をここに渡します。- The
code
can only be used once. If you need to obtain a new token, you will need to have the user authorize again by repeating the above Authorize the user step. code
は一回限り有効です。もし新しいトークンを必要とする場合、ユーザーの認証に戻ってやり直す必要があります。
このメソッドのレスポンスはTokenエンティティです。access_token
を要求します。一度アクセストークンを取得したら、ローカルにキャッシュしてください。アクセストークンをリクエストに含めるには、Authorization: Bearer アクセストークンを入力
HTTPヘッダーを付与してください。これは、例えば公開されていない情報を取得するときなど、OAuthを要求するいかなるAPIにアクセスする時にも必要です。[GET /api/v1/accounts/verify_credentials]で取得した認証情報が有効かどうかを確認できます。
curl \
-H 'Authorization: Bearer アクセストークンを入力' \
https://mastodon.example/api/v1/accounts/verify_credentials
トークンを正しく取得し、これを含めて上記ののようにアクセスした場合、そのユーザーのAccountエンティティにsource
が付与されたものが返ります。
認証されたユーザーとしてアクションを実行する
認証されたユーザーのトークンを付与すると、トークンのスコープ内にあるユーザーとして任意のアクションを実行できるようになります。
投稿とその削除
- POST /api/v1/statusesで投稿を作成できます。
- /api/v1/mediaでメディアを添付できます。
- /api/v1/scheduled_statusesで時間指定投稿が使用できます。
タイムライン
- /api/v1/timelinesでタイムラインにアクセスできます。
- /api/v1/markersでタイムライン上の特定の位置を記録し、呼び出すことができます。
- /api/v1/statusesでそのトゥートに対してアクションを実行できます。
- /api/v1/pollsでアンケートを見たり、投票することができます。
- /api/v1/listsでGET /api/v1/timelines/list/:list_idを使用するために必要なIDを取得できます。
- /api/v1/conversationsで公開範囲が「ダイレクト」の会話を取得できます。
- /api/v1/favouritesでお気に入り登録したトゥートの一覧を取得できます。
- /api/v1/bookmarksでブックマークに登録したトゥートの一覧を取得できます。
他のユーザーとの関わり
- /api/v1/accountsで他のユーザーに対してアクションを実行できます。
- /api/v1/follow_requestsでフォローリクエストを操作できます。
- /api/v1/mutesでミュートしたユーザーの一覧を取得できます。
- [/api/v1/blocks](/methods/accounts/blocks/でブロックしたユーザーの一覧を取得できます。
通知を取得する
- /api/v1/notificationsで通知を操作できます。
- /api/v1/pushでプッシュ通知を購読できます。
検索・発見機能
- /api/v2/searchで検索できます。
- /api/v1/suggestionsでフォロー推奨ユーザーの一覧を取得できます。
セーフティ機能
- /api/v1/filtersでタイムラインを特定ワードを使用しフィルタできます。
- /api/v1/domain_blocksでブロックするドメインを設定できます。
- /api/v1/reportsで通報を作成できます。
- /api/v1/adminでユーザーをモデレーションできます。
アカウントの情報を編集
- /api/v1/endorsementsでプロフィールに紹介するアカウントを設定できます。
- /api/v1/featured_tagsでプロフィールに紹介するハッシュタグを設定できます。
- /api/v1/preferencesでユーザーの設定を取得できます。
最終更新 July 1, 2020 · このページを改善する
他の言語:
English