Я не могу заставить шаблон @ [user_id] работать, используя:
$userid = <USER_ID>;
$friendId = <FRIEND_ID>; // This is a user who has accepted the app
$url = "https://graph.facebook.com/$userid/notifications";
$attachment = array(
'access_token' => "$app_token",
'href' => "",
'template' => "@[" . $friendId . "] accepted challenge!");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
//curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close ($ch);
$result
возвращает «ложь»
$friendId
является действительным пользователем приложения и
$app_token
такое «appid | appsecret»
Если я заменю ‘template’ на простое сообщение типа «test», все будет работать нормально
Есть идеи?
Возможно, вы используете неправильный идентификатор пользователя. Чтобы убедиться, что вы используете соответствующий идентификатор для своего друга, используйте меня / друзей с действительным токеном доступа пользователя для вашего приложения и проверьте, присутствует ли идентификатор в списке и является ли он обычным идентификатором пользователя или идентификатором области приложения. ,
Также убедитесь, что ваше приложение не находится в «режиме разработчика». Если это так, вам нужно добавить своего пользователя в качестве тестера или разработчика, чтобы вы могли протестировать свое приложение.
Я проверил это пару минут назад, и это хорошо работает.
Как несвязанный вопрос, не проще ли использовать PHP SDK от Facebook?
Я надеюсь, что это помогает.
Редактировать: App Scoped ID пользователя
Facebook представил управление версиями в апреле 2014 года. В Facebook API V2 мы представили идентификатор пользователя App Scoped, вы можете узнать больше об этом здесь: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids
По сути, если ваше приложение FB было создано после апреля 2014 года, вы получите уникальный идентификатор для каждого пользователя, который может использоваться только вашим приложением. Вы должны использовать этот новый идентификатор пользователя в рамках приложения вместо обычного идентификатора пользователя Facebook.
Других решений пока нет …