アクセストークンが取得できません

November 2020 編集されました カテゴリ: API共通

ドキュメントのスタートガイド通りに

アプリを登録して、クライアントIDとクライアントシークレットを指定して

アクセストークン取得を行いましたが、以下のエラーメッセージが返ってきて取得できませんでした。

(アクセストークン取得には Postman v7.35 を使用しました。)

   "type": "https://api.smaregi.jp/problems/oauth2/unsupported_grant_type",

  "title": "Unsupported Grant Type",

  "status": 400,

  "error": "unsupported_grant_type",

  "error_description": "The authorization grant type is not supported by the authorization server.",

  "hint": "Check that all required parameters have been provided"

ベストアンサー

  • November 2020 編集されました 回答済み✓

    @toyoday

    Unsupported Grant Type

    とあるように、こちらのエラーはリクエストボディのgrant_typeが誤っている可能性があります。

    スタートガイドだけでなくこちらもご覧になるとわかりやすいかも知れません。


    ---


    念の為、私の取得方法を共有させていただきます。

    取得フロー

    URL

    注意していただきたいのは、サンドボックスに要求するときはhttps://id.smaregi.devを指定し、本番環境に要求するときはhttps://id.smaregi.jpを指定します。

    取得イメージ

    以下はPostmanを利用した場合の画面になります。(重要情報は表示できません。ご了承ください。)

    契約ID

    開発段階であれば、契約IDはご自身のサンドボックス環境の契約IDを指定して下さい。

    この情報は画面の左上に載っています。

    スコープ

    有効にしたいスコープリストはご自身の開発されるアプリにあったスコープを指定してください。

    仕様書に記載の通り、必須です。指定がない場合でもトークンを取得することはできますが、そのトークンはスコープのないトークンとなりますので、APIで利用することは難しいかと思います。

    scope ○ 要求するAPIスコープ。複数の場合は半角スペースで結合して指定。

    grant_type

    アプリアクセストークンを取得する場合はclient_credentialsを指定してください。

    Authorization

    開発段階であれば、環境設定画面の「開発」タブの下部に認可情報が載っています。

    こちらをクライアントID:クライアントシークレットという感じに文字列結合し、Base64でエンコードしたものをリクエストヘッダーに設定してください。


    疑問点がありましたら、またコメントしてくださいませ。

    よろしくお願いいたします。

答え