Я отправляю уведомление Facebook с помощью PHP, но у меня возникла проблема, которую я не могу решить с помощью документов Facebook.Ошибка при использовании PHP SDK для отправки уведомлений
Уведомление сообщает человеку, что их друг обыграла их в игре, Это PHP код, который посылает сообщение:
<?php
require_once __DIR__ . '/facebook-sdk-v5/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '{123456789}',
'app_secret' => '{1a2b3c4d5f6g7h8i9j}',
'default_graph_version' => 'v2.3',
]);
//This is an array of ID numbers received from an Ajax post
$data = json_decode(stripslashes($_POST['data']));
//This the ID number of the sender of the notifications
$senderid = $_POST['senderid'];
echo $senderid;
foreach($data as $d){
$request = $fb->post('/'.$d.'/notifications', array('template' => '@['.$senderid.'] just beat you!'), '123456789|1a2b3c4d5f6g7h8i9j');
}
?>
Этот код берет массив идентификационных номеров ($data
) и отправки уведомление каждому. senderid
- это идентификатор отправителя, и в соответствии с документами здесь: https://developers.facebook.com/docs/games/services/appnotifications, набрав что-то вроде @[12625234523] just beat you!
, следует автоматически поместить имя человека, которому принадлежит этот идентификатор, поэтому в уведомлении должно быть написано что-то вроде «Джон Доу просто избил тебя», ,
Но это не работает для меня. Я уверен, что идентификатор отправителя успешно отправляется в файл PHP, потому что он отображается в консоли, когда я echo $senderid
. И когда я вводим идентификатор отправителя вручную в часть «шаблона» запроса, я получаю ту же ошибку в консоли. Ошибка:
Фатальная ошибка: Uncaught исключение «Facebook \ Исключения \ FacebookServerException» с сообщением "Неизвестная ошибка произошла. в /home/mywebsite/public_html/Games/Barre/facebook-sdk-v5/Exceptions/FacebookResponseException.php:105 трассировки стека:
0/Главная/МойВебСайт/public_html/Игры/Барре/facebook-СДК-v5 /FacebookResponse.php(210): Facebook \ Исключения \ FacebookResponseException :: создать (Object (Facebook \ FacebookResponse))
1 /home/mywebsite/public_html/Games/Barre/facebook-sdk-v5/FacebookResponse.php (255): Facebook \ FacebookResponse- > makeException()
2 /home/mywebsite/public_html/Games/Barre/facebook-sdk-v5/FacebookResponse.php(82): Facebook \ FacebookResponse- > decodeBody()
3 /home/mywebsite/public_html/Games/Barre/facebook-sdk-v5/FacebookClient.php(225): Facebook \ FacebookResponse- > __construct (Object (Facebook \ FacebookRequest), «{" ошибка ": { " беспорядок ... ', 500, массив)
4 /home/mywebsite/public_html/Games/Barre/facebook-sdk-v5/Facebook.php(504): Facebook \ FacebookClient- > SendRequest (Object (Facebook \ FacebookRequest))
5/дома/МойВебСайт/public_ht в /home/mywebsite/public_html/Games/Barre/facebook-sdk-v5/Exceptions/FacebookResponseException.php на линии
Я уверен, что массив идентификаторов работает правильно, так как все прекрасно работает, когда я удалить $senderid
из шаблона сообщения. Это не идеально, хотя я хотел бы рассказать игроку, который их избил, вместо того, чтобы дать им сообщение вроде «Тебя только что избили». Я хотел бы указать имя отправителя в сообщении/шаблоне, но метод, указанный в документе Facebook выше, не работает, возможно, только можно использовать метод @[12425232]
при вводе в Google API API графиков?
Я бы очень признателен за любую помощь, которую любой может дать мне с этой проблемой. Спасибо заранее!
Прежде всего, вы должны правильно _catch_ исключений в коде, так что они не приводят к фатальным ошибкам. Во-вторых, это сообщение об исключении звучит скорее, как, может быть, общая проблема с подключением к API, а скорее не так, как если бы он был специфичен для этого конкретного запроса. – CBroe