Вызовы API Facebook Score из Android не показывают высокие результаты на временной шкале / тикере - PullRequest
7 голосов
/ 22 марта 2012

Я пытаюсь заставить приложение для Android публиковать рекорды на Facebook, подобно тому, как это делает Angry Birds на Facebook (оно отображается на временной шкале и также отображается в тикере).Имейте в виду, что эта игра работает только на Android и не имеет приложения FB Canvas.

В настоящее время я делаю следующие шаги для публикации рекордов:

  1. Аутентификация пользователя через FB при нажатии кнопок входа в систему, запрос только прав на публикацию_операций - работает
  2. Запросите идентификатор пользователя, вызвав "/ me" через FB SDK и сохранив идентификатор в переменной - работает
  3. Отправьте запрос POST черезFacebook SDK, когда пользователь нажимает «Набрать 100 баллов», со следующим кодом: - работает (логи истинны от звонка)

    Bundle params = new Bundle();
    params.putString("score", "100");
    
    // appAccessToken is temporarily a constant
    facebook.setAccessToken(appAccessToken);
    
    String response = "null";
    
    try {
         response = facebook.request(userId + "/scores", params, "POST");
    } catch (IOException e) {
         e.printStackTrace();  
    }
    
    // Logs true if successful
    Log.d(TAG, response);
    
  4. Откройте Facebook, чтобы увидеть обновления отв игре, но нигде ничего не отображается, в отличие от Angry Birds, который отображается на вашей временной шкале и показывает самый высокий балл - сбой (нигде не зафиксировано ни одного рекорда

Еще немногоинформация, которая может вам понадобиться:

  • Категория приложения установлена ​​на Game
  • Тип приложения установлен на Web (Native не позволил мне правильно разместить новый счет)
  • Пользователь, с которым я пытаюсьявляется владельцем приложения
  • Пробовал описанные выше шаги с включенной и выключенной песочницей
  • Если я позвоню https://graph.facebook.com/USER_ID/scores с соответствующим access_token и идентификатором пользователя, я получу ранее отправленное100-балльная оценка в качестве ответа, поэтому публикация оценки, кажется, работает

Вопрос в том, почему она не отображается нигде в ленте / шкале времени / тикере.Я что-то упустил?

1 Ответ

6 голосов
/ 29 марта 2012

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

Ответ таков: средства, с помощью которых такие игры, как Angry Birds , публикуют высокие оценки, на самом делесмешивается между механизмом оценки и публикации непосредственно в поток пользователя.Facebook контролирует типы и распространение историй, при которых будут публиковаться оценки , поэтому ваше приложение не гарантирует создание нового элемента истории каждый раз, когда вы публикуете оценку на сайте.Цитируя первоисточник:

Facebook сообщает, что истории, которые получают наибольшее количество кликов, лайков и комментариев, получат большее распространение в новостной ленте и на временной шкале.

К счастью,у вас есть выход, если пользователь позволяет это.Если вы считаете, что ваш пользователь очень заботится о публикации своих рекордов, вы можете запросить разрешение на публикацию в своем потоке напрямую и сделать это с вашими собственными сообщениями.Более подробную информацию можно найти здесь .

( Дополнительная ссылка )

...