Facebook API v2.0 представил invitable_friends
edge.
Пример ответа от запроса GET к этому ребру:
{
"data": [
{
"id": "AVkgK9fLFxasdvXNbDV_gYogR6lXa9SKLnH...",
"name": "Anita Sujarit",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t1.0-1/c0.0.50.50/p50x50/1470158_10201991701127909_302023572_t.jpg"
}
}
}
}
Присмотревшись к этому ID, это не обычный идентификатор пользователя Facebook. Вместо этого Пригласить токен; этот токен передается Requests Dialog в качестве значения для параметра to
.
Маркер приглашения, возвращенный на каждом из объектов-друзей как значение поля с именем id, является уникальной (для пользователя и для каждой игры) строкой переменной длины. Маркер приглашения подлежит истечению и может меняться между игровыми сеансами. Поэтому нецелесообразно кэшировать эти результаты или пытаться назначить их данному человеку.
friends
edge теперь возвращает только друзей, которые уже используют приложение
Моя проблема в том, что теперь у меня нет возможности перекрестно ссылаться на друзей, которых я пригласил и которые приняли.
Раньше я бы сохранил идентификатор друзей, когда я отправил им приглашение, и в какой-то более поздний момент проверил это против списка друзей, играющих в игру, но теперь это невозможно по нескольким причинам:
- Лоток приглашения отсутствует на краю друзей
- И это динамично в любом случае
- Обычный идентификатор пользователя отсутствует на краю invitable_friends.
- Я мог бы использовать имя пользователя в качестве ключа, но это не уникально.
Актуальный вопрос: Кто-нибудь придумал способ определения от приглашенных пользователей, которые приняли это приглашение?