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 для вашей игры. (Статус и обзор).