Graph returned an error: Invalid appsecret_proof provided in the API argument

[亡魂溺海] 提交于 2019-12-10 20:04:51

问题


i am using facebook PHP sdk (v4) to fetch user information, after installing SDK, i add the code

$fb = new Facebook\Facebook([
  'app_id' => 'my app id',
  'app_secret' => 'my app secret',
  'default_graph_version' => 'v2.5',
]);

try {
  // Returns a `Facebook\FacebookResponse` object
 $access_token= //copied from my https://developers.facebook.com/tools/explorer/
  $response = $fb->get('/me?fields=id,name', '$access_token');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

$user = $response->getGraphUser();

echo 'Name: ' . $user['name'];

but when i run the page it gives me this error,

Graph returned an error: Invalid appsecret_proof provided in the API argument

i am copying the app secret correctly, what could be the reason for such error and how should i fix this ?


回答1:


You may want to read this: https://developers.facebook.com/docs/graph-api/securing-requests

appsecret_proof is a separate parameter that is generated by using the App Secret, but it is NOT the App Secret. Information about how to generate it can be found in the docs.




回答2:


This might help someone who lands here like me. This error also happens if the App Secret is wrong for the particular App ID




回答3:


You need to select your created APP in the Facebook Graph Explorer. I was selecting my username. When I selected the app and click on "Get token" it shows me de "login panel" from my app and can generate the token.

It works for me.




回答4:


Late reply but in my case was something else, so I hope it helps someone else. I see you commented:

//copied from my https://developers.facebook.com/tools/explorer/

On the top right corner of the explorer tool make sure that the selected Application is the same with the one you are using for:

$fb = new Facebook\Facebook([
  'app_id' => 'my app id',
  'app_secret' => 'my app secret',
  'default_graph_version' => 'vX.Y',
]);

If you have another Application selected and use an Access Token given for a different one (basically the default Explorer App) the hash creating the appsecret_proof will be incorrect and you will always see this error.



来源:https://stackoverflow.com/questions/35171508/graph-returned-an-error-invalid-appsecret-proof-provided-in-the-api-argument

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!