Шаблон уведомления приложения Facebook с идентификатором пользователя (@ [user_id]) не работает

0

Я не могу заставить шаблон @[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"

Если я заменю "шаблон" простым сообщением, таким как "тест", все работает отлично

Есть идеи?

Теги:
curl
facebook
facebook-graph-api
facebook-app-requests

1 ответ

2
Лучший ответ

Вероятно, вы используете неправильный идентификатор пользователя. Чтобы убедиться, что вы используете соответствующий идентификатор для своего друга, используйте меня/друзей с действующим токеном доступа для вашего приложения и проверьте, находится ли идентификатор в списке, и если это обычный идентификатор пользователя или идентификатор области приложения,

Также убедитесь, что ваше приложение не находится в "режиме разработчика", если это так, вам нужно будет добавить своего пользователя в качестве тестировщика или разработчика, чтобы вы могли протестировать свое приложение.

Я проверил это пару минут назад, и он работает хорошо.

Как не связанный вопрос, не будет ли проще использовать PHP PHP SDK?

Я надеюсь, что это помогает.


Изменение: идентификатор пользователя с областью приложения

Facebook представил версию в апреле 2014 года. В Facebook API V2 мы представили идентификатор пользователя с областью приложения, вы можете прочитать об этом здесь: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids

В принципе, если ваше приложение FB было создано после апреля 2014 года, вы получите уникальный идентификатор для каждого пользователя, который может использоваться только вашим приложением. Вы должны использовать этот новый идентификатор пользователя приложения, а не обычный идентификатор пользователя Facebook.

  • 0
    Благодарю. Я проверил все это, но все еще не радость. Мое приложение находится в режиме разработчика, но этот друг отмечен как тестер. Хотя я не понял одну вещь - что такое идентификатор области приложения? Должен ли шаблон включать обычный идентификатор пользователя или идентификатор пользователя в области приложения?
  • 0
    Привет techsMex, я обновил свой ответ кратким объяснением и ссылкой на идентификатор области приложения. Лучший способ проверить, есть ли у вашего друга нормальный идентификатор пользователя или идентификатор области приложения, - это позвонить мне / друзьям и использовать предоставленный там идентификатор.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню