Community

コミュニティをご利用の際は 【ガイドライン】を確認・同意いただいた上でご利用ください。

※2021年6月25日(金)に、Community機能の提供を終了します。詳細はこちら

  • 投稿

    アバターsato takayoshi

    アクセストークンの取得について

    お世話になっております。

    APIで開発にあたり、チュートリアルのアクセストークンの取得をコンソールから行ったところ、

    パラメータ不正のメッセージが表示されました。

    何がいけないのでしょうか?

    【参考にしたチュートリアル】

    アクセストークンを取得する

    【実行と結果】

    curl -i -X POST \
    > -H “Content-Type:application/x-www-form-urlencoded” \
    > -d “grant_type=authorization_code” \
    > -d “client_id=${Client ID}” \
    > -d “client_secret=${Client Secret}” \
    > -d “code=${認可コード}” \
    > -d “redirect_uri=${コールバックURL}” \
    > ‘https://accounts.secure.freee.co.jp/public_api/token’
    HTTP/1.1 401 Unauthorized
    Date: Tue, 08 Dec 2020 07:28:27 GMT
    Content-Type: application/json; charset=UTF-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Status: 401 Unauthorized
    Cache-Control: no-cache, must-revalidate
    Referrer-Policy: strict-origin-when-cross-origin
    X-Permitted-Cross-Domain-Policies: none
    X-XSS-Protection: 1; mode=block
    X-Request-Id: 80f0c1d2-8275-4f70-aae6-6bab151a51ce
    X-Download-Options: noopen
    X-Runtime: 0.036283
    X-Frame-Options: SAMEORIGIN
    X-Content-Type-Options: nosniff
    Pragma: no-cache

    {“error”:”invalid_request”,”error_description”:”必須パラメータが不足しているか、サポートされていないパラメータが含まれ

    • フォーラム「Community」には新規投稿および返信を追加できません。

    回答

    アバターyakumo

    もしかして ${認可コード} らへんそのまま送ってます?

    こちら変数なので自身のアプリの値に置き換えないと動きません、

    『シェル 変数』などで調べて理解度深めると良いかもしれません。

    https://www.google.com/search?q=%E3%82%B7%E3%82%A7%E3%83%AB+%E5%A4%89%E6%95%B0&oq=%E3%82%B7%E3%82%A7%E3%83%AB%E3%80%80%E5%A4%89%E6%95%B0&aqs=chrome..69i57j0l7.2504j0j7&sourceid=chrome&ie=UTF-8

    アバターsato takayoshi

    >yakumo様

    ご指摘ありがとうございます。

    Client ID、Client Secret、認可コード、コールバックURLは伏せていますので、確認では実際の値を使っています。

    アバターyakumo

    なるほど…。
    そうなると不思議ですね…。

    * 何かしらコピペミスをしている
    * 認可コードの有効期限が切れている

    などでしょうか?
    その場合別エラーかと思うのですが。

    念の為の確認ですが、変数部分はどのように置き換えてますか?

    たとえば、認可コードが 1234  とすると、

    > -d “code=${認可コード}” \
    =>
    -d “code=1234” \

    となっていますか?

    アバターyakumo

    なるほど。そうなるとやはり何かしら実際のコード上に誤りがあるかと思います。
    そのため今頂いている情報からだとこれ以上はわからないです。

    パラメータの不足と言われているので、何かしらシェルのsyntaxに問題がありそうですが、あわせて前述した以下確認してみてください。

    * 認可コードの有効期限ぎれ
    * typo

    コードの検算方法として、REST Client などで同様のリクエストを試してみて動けば、
    メジャーなREST Clientには curl コマンド生成してくれるのが多いので、
    そちらと比較してみるなどで解決してみてください。

    アバターsato takayoshi

    >yakumo様

    ご指摘ありがとうございます。

    > -d “code=${認可コード}” \
    >=>-d “code=${1234}” \

    囲んでしまってたのが原因のようでした、。

    エラーメッセージが変わりましたので、クローズさせていただきます。

    ありがとうございました。