本番検証を利用してtest_developersのアクセストークンを取得してもスコープが空文字になるのはなぜでしょうか?

カテゴリ: API共通

アプリの審査が完了したので、本番環境で動作検証しようとしたのですが、

に対して、

scope: pos.staffs:read pos.stores:read pos.products:read pos.transactions:read pos.transactions:write

grant_type: client_credentials

をセットし、ヘッダーに

Authorization:本番環境用のクライアントIDと本番環境用のクライアントシークレットを「:」で連結しBase64化したものを付与して、POSTを実行すると

{
    "scope": "",
    "token_type": "Bearer",
    "expires_in": 3600,
    "access_token": "ey.....(省略)"
}

のように、scopeが空で帰ってきました。

当然このaccess_tokenを使用して、POS APIをコールすると(例えば店舗一覧取得)

{
    "type": "https://api.smaregi.jp/problems/oauth2/insufficient_scope",
    "title": "Insufficient Scope",
    "scope": "pos.stores:read"
}

が当然帰ってきます。


もちろん、該当アプリを

このアプリをスマレジの本番環境と接続する

で「接続」を有効にしています。

本番環境に接続して、test_developersを使用してテストする方法ですが、

何か必要な手順があるのでしょうか?

答え

  • 追記ですが、

    同じことを、サンドボックス環境で実施したところ、

    問題なく動作しています。


    なお、見落としていたのですが、

    「本番検証機能」とは、サンドボックス環境にて全ての開発・テストが完了したのち、リリースした後に本番環境にて接続を確認する時に利用できる機能を指します。


    とQ&Aに記載されていますが、もしかして、本番検証機能は、公開アプリを審査後に、

    マーケットに公開しないと利用できないということでしょうか?

    (「リリースした後に」という文面から推測すると、公開しないと利用できない?)

  • 本件自己解決しました。

    でもあるように、一旦公開しないと、スコープ等が適用されないということですね。

    公開後に実施すると、scopeが正しく取得できていることを確認できました。