Я использую facebook PHP sdk (v4) для получения информации о пользователе, после установки SDK, я добавляю код
$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'];
но когда я запускаю страницу, она дает мне эту ошибку,
Graph returned an error: Invalid appsecret_proof provided in the API argument
Я правильно копирую секрет приложения, что может быть причиной такой ошибки и как я могу это исправить?
Вы можете прочитать это: https://developers.facebook.com/docs/graph-api/securing-requests
appsecret_proof
– это отдельный параметр, который генерируется с помощью приложения Secret, но это не секрет приложения. Информацию о том, как ее сгенерировать, можно найти в документах.
Это может помочь кому-то, кто приземляется здесь, как я. Эта ошибка также возникает, если приложение Secret неправильно для конкретного идентификатора приложения
Поздний ответ, но в моем случае было что-то еще, поэтому я надеюсь, что это поможет кому-то другому. Я вижу, что вы прокомментировали:
//copied from my https://developers.facebook.com/tools/explorer/
В верхнем правом углу инструмента проводника убедитесь, что выбранное Application
совпадает с тем, которое вы используете для:
$fb = new Facebook\Facebook([ 'app_id' => 'my app id', 'app_secret' => 'my app secret', 'default_graph_version' => 'vX.Y', ]);
Если вы выбрали другое приложение и используете appsecret_proof
доступа, указанный для другого (в основном приложение-приложение по умолчанию), хэш, создающий appsecret_proof
будет неправильным, и вы всегда увидите эту ошибку.
Вам нужно выбрать созданный APP в Facebook Graph Explorer. Я выбрал свое имя пользователя. Когда я выбрал приложение и нажал «Получить токен», он показывает мне «панель входа» из моего приложения и может генерировать токен.
Меня устраивает.