Подтвердить что ты не робот

Почему я получаю "Invalid appsecret_proof, предоставленный в аргументе API",

С момента последнего изменения на Facebook, касающегося appsecret_proof: https://developers.facebook.com/docs/reference/api/securing-graph-api/, мы по-прежнему не можем загружать отчеты об эффективности даже после включения/отключения функций из дополнительных настроек в наше приложение, или примените код, как описано в их документе.

Мы постоянно получаем эту ошибку:

{ "error": { "message": "Invalid appsecret_proof, предоставленный в аргументе API", "type": "GraphMethodException", "code": 100}}

и я открыл конфиденциальную ошибку, но никто не возвращает мне ответ.

Я действительно не знаю, что еще можно попробовать?

4b9b3361

Ответ 1

Ошибка (основанная на моем опыте) почти наверняка правильна; это означает, что вы подтверждаете недействительные appsecret_proof с помощью вызова API

Предполагая, что вы используете стандартный PHP SDK без изменений, наиболее вероятными причинами этого являются:

  • Вы настроили неверный идентификатор приложения в SDK-коде
  • Вы сконфигурировали неправильный секрет приложения в коде SDK
  • Вы пытаетесь использовать токен доступа из неправильного/другого приложения.

Ответ 2

Другая потенциальная причина ошибки "Invalid appsecret_proof..." - это токен доступа пользователя, который не связан с приложением. Если вы создаете токен доступа пользователя с помощью проводника графов, обязательно выберите приложение из раскрывающегося списка в верхнем правом углу. В противном случае вы будете генерировать токены, которые работают только в проводнике графического API-интерфейса.

I подал ошибку с SDK Python, прежде чем я поймал свою ошибку. GUI - это дьявол.

Ответ 3

В SDK Facebook есть ошибка. После 20 часов попыток все отладить мой собственный код (у которого не было проблем!), Я прокомментировал это в файле base_facebook.php:

/* Commented out by SJ 
    if (isset($params['access_token'])) {
      $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
    }
*/

И все проблемы ушли!

Ответ 4

Нет ошибок в последней версии PHP. Вам необходимо создать appsecret_proof в соответствии с документами:

$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);

затем передайте его как параметр для вашего вызова api.

Смотрите документы здесь: https://developers.facebook.com/docs/graph-api/securing-requests/

Как только я сделал это, все было хорошо, и мне не пришлось взламывать base_facebook.php

Ответ 5

Это ошибка из-за правильного токена. Возможно, вы используете другую учетную запись для настройки веб-приложения и мобильного приложения для настройки Facebook. Оба аккаунта должны быть одинаковыми.

Идентификатор приложения должен быть одинаковым для вашего мобильного приложения и вашего веб-приложения.

Ответ 6

Эта ошибка является результатом установки неверного токена доступа. Например, размещение на альбомной странице с использованием токена доступа пользователя (администратора). Я решил эту ошибку почти все время, установив правильный токен доступа

Ответ 7

Если эта ошибка является неожиданным поведением, вы можете проверить ее в своем приложении. Снимите флажок, и вы должны прекратить эту ошибку. Этот параметр находится в настройках → расширенный и называется "App Secret Proof for Server API calls". Установите значение НЕТ.

На данный момент этот параметр находится на этой странице (обязательно разместите свое приложение в URL-адресе): https://developers.facebook.com/apps/YOUR-APP-ID/settings/advanced/

Обратите внимание, что это не универсальное решение, а только решение для людей, которые не хотят этого поведения.

Ответ 8

убедитесь, что ваша настройка верна fbappid + fbappsecret

эта ошибка возникает, если они не установлены правильно

как у вас есть 2 приложения, одна разработка и одна продукция

и вы испортите коды, дважды проверьте эти два

Ответ 9

Просто для людей, имеющих ту же проблему;

Когда вы устанавливаете Client OAuth Login на "да" на facebook, вы должны предоставить правильный Действительный URI перенаправления OAuth. В противном случае facebook выдает точно такую ​​же ошибку.

Ответ 10

В моем случае мне нужно было установить токен доступа по умолчанию с помощью метода: setDefaultAccessToken()

Я использовал токен, сгенерированный в инструменте GraphApi dev, но я не переключился на правильное приложение. Это было решено путем изменения приложения на правильное и с использованием регенерированного токена.

Ответ 11

Я знаю, что это старый вопрос, но я решил, изменив приложение на соответствующее приложение, с которым я должен генерировать токен доступа. Например, из Project1 в Project2.

Ответ 12

enter image description here Возможно, что-то не так с вашим токеном доступа, вам нужен стиль Business Manager. Вы можете получить токен из содержимого https://business.facebook.com/settings/system-users/ {sys_user_id}? Business_id = {business_id} с помощью регулярного выражения r'"accessToken":"([\d|\w]+)","context"'