2012-06-04 5 views
10

Я разрабатываю PHP-игру и хочу публиковать рекорды игроков на своей собственной стене/шкале facebook.Невозможно опубликовать высокий балл на временной шкале игрока на 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. Читая документацию, мне кажется, что пользовательская история должна автоматически публиковаться при сохранении оценки. Например, посмотрите here или here.

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

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

+0

вы проверили в журнал активности? Вы можете использовать его через https://www.facebook.com/USER_ID/allactivity – Venu

+0

Вы уверены, что используете действующий токен доступа к приложениям? (т. е. попробуйте «эхо» и убедитесь, что это то, что вы ожидаете). Попробовали ли вы повторить запрос в [Исследователь API диаграмм] (https://developers.facebook.com/tools/explorer/)? –

+0

К сожалению, я сделал оба, как я писал: оценка действительно спасена Facebook, но ничего не появляется, как я ожидал от документов. – HobieCat

ответ

4

Вы пишете

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

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

  • получает новый высокий балл («История с высокими баллами»).
  • передать оценку другого друга («Прохождение истории»).

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

Источники:
Facebook Developers: Games Tutorial.
Facebook Developers Developer Blog: Games Update: Expanding distribution for Scores and Achievements

+0

Мое развитие прошло дальше, теперь я публикую как счет, так и стену. Так что я больше не отправляю 1500 экземпляров, и я проверяю фактический балл, чтобы быть больше, чем то, что хранится в Facebook до публикации. Пока я пишу, я делаю несколько тестов с несколькими друзьями, сообщит вам – HobieCat

+0

Время обновления: после тестов, проведенных мной с друзьями, я должен сказать, что это частично работает. Я смог получить «Проходящую историю» только три раза из пяти, и у меня никогда не было «истории с высокими баллами». Есть ли у вас какие-либо дополнительные предложения и/или объяснения? Итак, далеко вы лучший ответ.Принято :) – HobieCat

+0

Рад, что это помогло :) Основываясь на вашем описании ваших тестов, я думаю, что истории с высокими баллами отфильтровываются для частоты внутри FB, так что эти истории не появляются слишком часто в фиде пользователя. Например, несколько новых сообщений с высоким рейтингом за один день от игрока, играющего в вашу игру, не будут опубликованы. Сведения о том, как работает этот фильтр, являются частными –

0

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

+0

Не могли бы вы разместить ссылку? «Я читал что-то», довольно общий, не так ли? – HobieCat

1

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

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

+0

Хорошо, но это не решает вопрос. Выглядит больше как обходной путь, спасибо в любом случае – HobieCat

-2

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

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

Смотрите инструкцию:

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

1

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

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

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

Смежные вопросы