Не удается опубликовать высокий балл до тайм-листа игрока на Facebook

Я разрабатываю PHP-игру и хочу публиковать рекорды игроков на своей собственной стене/шкале facebook.

Я создал приложение Facebook и код PHP, который я использую для POST, это оценка (как это предусмотрено самим Facebook):

<?php
 require 'facebook-sdk/facebook.php';

 $app_id = MY_APP_ID;
 $app_secret = MY_APP_SECRET;
 $score = 1500;  // this is gonna be passed someway...

 $facebook = new Facebook(array(
   'appId'  => $app_id,
   'secret' => $app_secret,
 ));

 $user = MY_USER_ID;  // to be replaced with a call to $facebook->getUser()

 $app_access_token = get_app_access_token($app_id, $app_secret);
 $facebook->setAccessToken($app_access_token);
 $response = $facebook->api('/' . $user . '/scores', 'post', array(
   'score' => $score,
 ));
 print($response);

 // Helper function to get an APP ACCESS TOKEN
 function get_app_access_token($app_id, $app_secret) {
   $token_url = 'https://graph.facebook.com/oauth/access_token?'
     . 'client_id=' . $app_id
     . '&client_secret=' . $app_secret
     . '&grant_type=client_credentials';

   $token_response =file_get_contents($token_url);
   $params = null;
   parse_str($token_response, $params);
   return  $params['access_token'];
 }
?>

Конечно, есть раздел входа и установки, который я пропустил, попросив пользователя войти в систему и предоставить привилегии 'publish_stream' и 'publish_actions для приложения.

Это работает с успехом, выходные переменные ответов 1. Я могу видеть опубликованный счет, используя API-интерфейс API-интерфейса Facebook, поэтому я предполагаю, что все действительно работает нормально и плавно.

Проблема в том, что я не могу видеть якобы опубликованную пользовательскую историю в любом месте на Facebook. Читая документацию, мне кажется, что пользовательская история должна автоматически публиковаться при сохранении оценки. В качестве примера, посмотрите здесь или здесь.

Кто-нибудь решил эту проблему уже? Вы видите что-то, чего я, возможно, не хватает? Не могли бы вы указать мне в правильном направлении, чтобы решить эту проблему?

Любая помощь будет высоко оценена.

Ответ 1

Вы пишете

Считывая документацию, мне кажется, что пользовательская история должна автоматически публиковаться при сохранении оценки.

Результаты не публикуются автоматически. Они публикуются только при определенных условиях, а именно, когда пользователь:

  • получает новый высокий балл ( "High score story" ).
  • передать другой счет друга ( "Прохождение истории" ).

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

Источники:
Разработчики Facebook: учебники по игре.
Блог разработчиков разработчиков для разработчиков: обновление игр: Расширение распространения баллов и достижений

Ответ 3

Вы можете создать сообщение на странице профиля приложения, отправив запрос HTTP POST в APP_ID/feed (не PROFILE_ID/posts) с разрешениями publish_stream.

Подробнее: TechNew.In

Ответ 4

Если ваша проблема: "Когда я успешно отправляю оценку API, она не обязательно создает историю в ленте новостей или в хронологии", это не проблема. Так работает API баллов.

Оценки - это облегченный вариант совместного использования, и они не всегда отображаются индивидуально - я редко вижу "Истории пользователей X" на Facebook, но см. "X beat Y Score in Z" и "X получил новый высокий балл", довольно часто. Там также отображается единица временной шкалы в пользовательском профиле, показывающая сводку игровой активности, и там отображаются данные о баллах.

Просто продолжайте публикацию в/[пользователь]/баллы, когда пользователь получает новый высокий балл и позволяет Facebook следить за распространением

Ответ 5

Недавно я кое-что прочитал, что FB прекратил предоставлять временные рамки Api. Он все равно появится в ленте новостей, но больше не будет на их стене.

Ответ 6

Я думаю, что нашел проблему для вас.

https://developers.facebook.com/docs/opengraphprotocol/#types

См. утверждение:

Страницы типа статьи или видео не имеют прав публикации и не отображаются в профилях пользователей, потому что они не являются объектами реального мира.