У меня странная проблема, которая появляется со вчерашнего дня (07/20/2015). Мой сценарий отлично работал с августа 2014 года, так что почти год, но теперь он отвергает работу. Если я опубликую изображение или текст в Facebook, я получу это сообщение об ошибке сервера:
PHP Неустранимая ошибка: Uncaught GraphMethodException: Недопустимые appsecret_proof, предоставленные в аргументе API \ n, брошенном в … / base_facebook.php в строке 1329
Это строка в функции throwAPIException в PHP PHP SDK (v.3.2.3) . Я знаю, это как-то связано с опцией Require App Secret (в Facebook Devs -> Apps -> Settings -> Advanced). Этот параметр отключен на год, поэтому, возможно, мне нужно добавить что-то новое в мой скрипт?
В этой статье stackoverflow-post я нашел подсказку для добавления этой строки при вызове:
FacebookSession::enableAppSecretProof(false);
… но это связано с новым SDK v.4, а не с v.3. В моем сценарии я вызываю SDK v.3 с:
$facebook = new Facebook(array( 'appId' => $App_ID, 'secret' => $App_Secret, 'cookie' => true )); $facebook->setAccessToken($Access_Token);
Есть ли способ добавить enableAppSecretProof где угодно? Спасибо за помощь! 🙂
Решение: в строке 918 base_facebook.php вы должны прокомментировать эти три строки
# if (isset($params['access_token']) && !isset($params['appsecret_proof'])) { # $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']); # }
Вот и все.