Я не могу заставить шаблон @[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
возвращает false
$friendId
- действительный пользователь приложения, а $app_token
- "appid | appsecret"
Если я заменю "шаблон" простым сообщением, таким как "тест", все работает отлично
Есть идеи?
Вероятно, вы используете неправильный идентификатор пользователя. Чтобы убедиться, что вы используете соответствующий идентификатор для своего друга, используйте меня/друзей с действующим токеном доступа для вашего приложения и проверьте, находится ли идентификатор в списке, и если это обычный идентификатор пользователя или идентификатор области приложения,
Также убедитесь, что ваше приложение не находится в "режиме разработчика", если это так, вам нужно будет добавить своего пользователя в качестве тестировщика или разработчика, чтобы вы могли протестировать свое приложение.
Я проверил это пару минут назад, и он работает хорошо.
Как не связанный вопрос, не будет ли проще использовать PHP PHP SDK?
Я надеюсь, что это помогает.
Изменение: идентификатор пользователя с областью приложения
Facebook представил версию в апреле 2014 года. В Facebook API V2 мы представили идентификатор пользователя с областью приложения, вы можете прочитать об этом здесь: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids
В принципе, если ваше приложение FB было создано после апреля 2014 года, вы получите уникальный идентификатор для каждого пользователя, который может использоваться только вашим приложением. Вы должны использовать этот новый идентификатор пользователя приложения, а не обычный идентификатор пользователя Facebook.