2014-12-14 4 views
0

Я начинаю разрабатывать игру в facebook, и сразу же сталкиваюсь с некоторыми проблемами в своем понимании. Я надеюсь, что там кто-то умный, кто может меня устроить прямо.Соответствующие идентификаторы друзей с графиком API 2.2

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

Я использую Graph Api версии 2.2 - так как я понимаю, что версия 1.0 будет отключена, поступит в апреле 2015 года. Проблема, которую я получаю здесь, заключается в том, что идентификаторы/теги являются «временными», поэтому возникнет проблема с совпадением их.

Используя это, я могу запросить список друзей, у которых уже установлено приложение. (Великий). И я (должен) получить обратно список идентификаторов для этих игроков. Затем я могу отправить им приложение AppRequest, которое предложит им загрузить игру. (до сих пор хорошо).

На этом этапе допустим, что один из других друзей загружает игру. Также предположим, что у меня есть некоторая обработка на моем сервере, поэтому каждый из этих друзей может сказать серверу: «У меня загружена игра, и я знаю« мой идентификатор этих идентификаторов друзей ».

В игре я хотел бы показать список моих нынешних друзей, которые на самом деле играют в игру - прямо сейчас. Это будет возможно, потому что сервер знает свой идентификатор и мой идентификатор, поэтому он может сказать «вот друзья, которые вы знаете ...»

Надеюсь, вы все еще следуете за мной.

Так может ли API-интерфейс Graph 2.2 запрашивать как (a) Мой собственный идентификатор (?) (b) Идентификаторы моего друга. - которые соответствуют и истекают в тот же период времени. (да, я знаю, что это возможно)

Возможно ли (а)? Даже если это так, это идентификатор, который сопоставим с временными идентификаторами друзей или же он другого типа, который может использоваться для разных целей. (например, я читал, что taggableFriend ID не могут использоваться для appRequests).

Если это невозможно, кто-нибудь может объяснить мне правильный подход?

Мне кажется, что в оставшиеся дни Graph API 1.0 не имеет эти проблемы, как (а) Вы можете получить свой собственный идентификатор с помощью интерфейса FQL, и (б) идентификаторы являются постоянными, чтобы вы могут хранить их в базе данных, чтобы сохранить эти проблемы. Например, в Api 1.0 каждый запущенный экземпляр приложения сможет уйти, только запрашивая его собственный идентификатор владельца facebook. (нет друзей). - до тех пор, пока в какой-то момент в прошлом спрашивали друзей. У вашего собственного сервера будет достаточно информации, чтобы иметь возможность сопоставить их и сказать: «Я знаю, что эти идентификаторы являются вашими друзьями».

Но как это сделать в Graph API 2.0?

У меня не будет моей игры до апреля 2015 года, поэтому нет смысла использовать старый API.

+0

Я так потерял. Я читаю это три раза, и я все еще теряюсь. Написание ответа, который, мы надеемся, дает вам суть invitable_friends, me/friends, user_friends и app scoped. – phwd

ответ

2

Возможно, у вас есть много вещей, которые вы уже знаете, но я думаю, что было бы лучше, если бы я начал с нуля, чтобы выровнять мысли.

ID пользователя

Существует два типа идентификаторов для пользователей, доступного

  • Global ID
  • App контекстных ID

Большинство, если не все приложения двигаться вперед должны использовать идентификатор области приложения.

пользователя Друзья

Пока вы запрашиваете user_friends разрешения вы получите список друзей также с помощью приложения.

Invitable Друзья API

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

Теперь к вашему сценарию, ваша игра работает и /me/friends список возвращает

{ 
     "data": [ 
     ], 
     "summary": { 
     "total_count": 5000 
     } 
    } 

Таким образом, нет друзей, в настоящее время в игре. Вы приглашаете друзей с помощью токенов приглашений от /me/invitable_friends, и один из ваших друзей присоединяется.

Recall `/me/friends` 

{ 
    "data": [ 
    { 
     "name": "phwd friend lastname", 
     "id": "app-scoped-id-1" 
    } 
    ], 
    "paging": { 
    "next": "https://graph.facebook.com/v2.2/me/friends..." 
    }, 
    "summary": { 
    "total_count": 5000 
    } 
} 

Так app-scoped-id-1 (который будет числовой) является приложением идентификатор области видимости вашего друга. Это не должно меняться.

Так идентификаторы, что вы будете хранить в

  • /me?fields=id текущий игрок
  • /me/friends?fields=id друзей игрока, которые также играют
Смежные вопросы