API FaceBook баллов дает оценку только для одного пользователя

Я пытаюсь построить таблицу лидеров Facebook в Unity3D для платформы Android. Я видел API-интерфейс Facebook для оценки. Я использовал пример друга разбить. Я могу успешно опубликовать счет, используя:

        var query = new Dictionary<string, string>();
        query["score"] = Instance.score.ToString();
        FB.API("/me/scores", Facebook.HttpMethod.POST, delegate(FBResult r) { Util.Log("Result: " + r.Text); }, query);

Я также могу успешно запросить счет, используя: FB.API("/app/scores? Fields=score,user.limit(20)", Facebook.HttpMethod.GET, ScoresCallback);

Но проблема в том, что я получаю оценку только за одного пользователя (пользователя, который вошел в систему). Я хочу, чтобы получить счет всех друзей из Facebook, которые играют в одну и ту же игру (я думаю, мы можем поставить ограничение в 20).

Как это может быть сделано?

PS: Я также пытался использовать API платформы app42, но это дает тот же результат.

3 ответа

Для этого вам необходимо разрешение user_friends для вашего приложения. Используйте это для отладки: https://developers.facebook.com/tools/explorer/

У меня была такая же проблема. Я добавил нового пользователя для приложения, но не смог увидеть его счет. Эта проблема оказалась просто задержкой на серверах Facebook. Я ждал полчаса, и он начал работать автоматически.

Я знаю, что это старый вопрос, но это может помочь кому-то еще.

Когда вы играете в свою игру в редакторе Unity, зарегистрированном с вашей учетной записью Facebook, ваш счет сохраняется. Но любой другой пользователь, который войдет в систему, не сохранит счет из-за отсутствия необходимых разрешений. Документация по API Scores гласит:

Вы можете опубликовать счет для игрока, отправив HTTP-запрос POST в /USER_ID/scores с пользователем access_token, если игрок предоставил разрешение publish_actions для вашего приложения.

Есть два способа сделать это для тестирования.

Если вы создаете тестовых пользователей в консоли Facebook для своей игры (Роли -> Тестовые пользователи), вы можете использовать их для проверки работоспособности своего кода. Создайте как минимум двух тестовых пользователей и сделайте их друзьями в консоли. Получите токен пользователя для одного из них и войдите в свою игру, используя этот токен в редакторе Unity. Сыграйте в игру, сохраните счет, а затем сделайте то же самое для другого тестового пользователя.

Затем вы должны увидеть обоих тестовых пользователей с результатами в вашей игре.

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

Чтобы это работало с реальными учетными записями пользователей в Facebook, вам нужно запросить разрешение publish_actions в консоли Facebook для вашей игры. (Статус и обзор).

Другие вопросы по тегам