Magento2 REST APIの%resourcesへのアクセスはコンシューマーに許可されていません


9

新しい顧客を作成してトークンを完全に取得しましたが、次のようなAPIにアクセスしようとすると

http://myhost.com/index.php/rest/V1/customers/me?Authorization=Bearerhy23vc01x9s1jd2t8gho47g58trllc0b 

エラーが発生しました

<?xml version="1.0"?>
<response>
<message>Consumer is not authorized to access %resources</message>
<parameters>
<resources>self</resources>
</parameters>
  <trace>#0 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest/RequestValidator.php(70): Magento\Webapi\Controller\Rest\RequestValidator-&gt;checkPermissions()
#1 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest/InputParamsResolver.php(80): Magento\Webapi\Controller\Rest\RequestValidator-&gt;validate()
#2 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest.php(299): Magento\Webapi\Controller\Rest\InputParamsResolver-&gt;resolve()
#3 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest.php(216): Magento\Webapi\Controller\Rest-&gt;processApiRequest()
#4 /var/www/myhost.com/public_html/var/generation/Magento/Webapi/Controller/Rest/Interceptor.php(24): Magento\Webapi\Controller\Rest-&gt;dispatch(Object(Magento\Framework\App\Request\Http))
#5 /var/www/myhost.com/public_html/vendor/magento/framework/App/Http.php(135): Magento\Webapi\Controller\Rest\Interceptor-&gt;dispatch(Object(Magento\Framework\App\Request\Http))
#6 /var/www/myhost.com/public_html/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http-&gt;launch()
#7 /var/www/myhost.com/public_html/index.php(39): Magento\Framework\App\Bootstrap-&gt;run(Object(Magento\Framework\App\Http))
#8 {main}</trace>
</response>

助けてください

回答:


10

許可トークンはパラメーターに配置されません。代わりにヘッダーに設定する必要があります。POSTMANの例を次に示します。

ここに画像の説明を入力してください

cURLでは、次のようになります。

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer XXXXXXXXXX" "http://yoursite.com/rest/V1/products/:sku"

お返事のおかげでは、すでに私は、ヘッダーまたはURLのパラメータとして、それを試してみましたが、同様にいくつかのAPIのために完璧に動作しproducts、あなたが行ったようにしてcategories、しかし、のようないくつかのAPIのためにV1/customers/me、私はエラーを得ました。ターミナルでカールを実行しても、完全に機能します。私はFirefoxのポストマンとhttpリクエスターを使用しています。
Jsparo30、2016

テストサイトに問題はありません。「ベアラー」とトークンの間にスペースがありましたか?そして、トークンが期限切れになっている可能性があります。新しいトークンを入手してください
PY Yick

HHH、冗談とは!! そこにはスペースがなかったとして罰金を働いていたproductsし、categories私が述べたように、しかし、それを削除するときcustomers/me加工さ罰金。答えを編集して、スペースを削除する部分を追加して、正しい答えを与えてください。ありがとう。
Jsparo30 2016

実際には、トークンが期限切れになる可能性が高くなります。古いトークンを使用してAPIにアクセスしましたが、質問で述べたのと同じエラーが表示されます。トークンを更新するだけで問題は解決します。
PY Yick

Jsparo30 @あなたは私も同じ問題に直面しています解決策見つからなかった
JanarthananのRamu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.