Mastodon の API でアクセストークンを取得しようとすると、「You are being redirected」が返ってくる。
TL; DR (今北産業)
- 初回トークン発行時の「承認画面」に転送されています。
- テストアプリで、アクセストークンが欲しいだけであれば Mastodon の設定からアクセス・トークンを発行するのが楽。
- スクリプトでアクセス・トークンを取得するには「Access Token Generator for Mastodon API」(by @takahashim )のスクリプトを使うのが手っ取り早い。
関連Qiita記事
TS; DR と 所感
Qiitadon や、その他の Mastodon インスタンスで API を使うためのアクセス・トークンを取得しようとすると「You are being redirected.」の 302 エラーで認証画面(/auth/sign_in
)にリダイレクトされてしまう。
以前は PHP 経由でも直接 cURL コマンドを叩いても取得できたのに、ClientID
と ClientSecret
までは取得できるものの、トークン取得時に認証画面へのリダイレクトが返されるようになりました。
Qiita/Qiitadon 共に二段階認証は設定しておらず、なんとなくですが、Qiita アカウントと GitHub アカウントと連携してからのような気がします。
The
/oauth/token
path will attempt to login with the given credentials, and then retrieve the access token for the current user. If the login failed the response will be a 302 redirect to/auth/sign_in
. Otherwise the response will be a JSON object containing the keyaccess_token
.
本家の情報を見ると認証に失敗しているらしいのですが、もともとメールアドレスとパスワードは変数で渡しているのと念のための内容も確認済みなので、恐らくタイポではない気がします。どうやら「このアプリを許可しますか?」的な、例の画面に転送されているっぽいのです。
「軽くトークンが欲しいだけなのに面倒臭いなぁ」と困っていたら、 @takahashim さんの「Access Token Generator for Mastodon API」を使うのが簡単でした。
ソースも GitHub で公開されているので、何を行なっているのかが見れて安心&勉強になりました。
https://github.com/takahashim/mastodon-access-token/blob/master/README.md
2017/09/07 追記
Mastodon v1.6.0rc1-16-g4c3dd0b を確認したところ、「設定」-「開発」-「アプリ」から「新規アプリ」ボタン押下で、アプリの登録および OAuth に必要なキー(Client ID
, Client Secret
, Access Token
)が取得できるようになっていました。個人専用のアプリのために、アクセストークンを取得するだけなら、この画面から発行するのが一番楽だと思います。(下記図参照)
参考文献
- Testing with cURL | tootsuite @ github
https://github.com/tootsuite/documentation/blob/master/Using-the-API/Testing-with-cURL.md - PHPでMastodonのStreaming APIを受信する。 @ Qiita
http://qiita.com/yyano/items/841f79266faf2dc8b6dc - mastodonのAPIをcurlで試してみた @ Qiita
http://qiita.com/znz/items/c924cd4e9d5e50e50058 - ノンプログラマーがMastodon BotをIFTTTとかRSSあたりで作ったドン @ Qiita
http://qiita.com/fujii_yuji/items/3507aa9f3d1c6258bb7b