Как я могу отфильтровать список друзей с тегами и получить только тех, кто еще не является частью списка друзей, используя API графа Facebook

Как вы знаете, с обновлением Facebook Graph API версии 2.0 вы больше не можете получить всех друзей, используя конечную точку «я/друзья». Эта конечная точка теперь будет возвращать только тех друзей, которые также зарегистрированы в том же приложении (пользователи с областью действия приложения). Чтобы получить всех друзей, Facebook предоставил новый API (отмечаемые друзья) в конечной точке «me/tagable_friends».

Проблема, с которой я сталкиваюсь, заключается в том, что список друзей с тегами является надмножеством списка друзей, и нет надежного способа исключить последний из первого. Таким образом, пользователи из списка «я/друзья» также будут отображаться под пользователями из списка «я/отмечаемые_друзья».

Например, предположим, что у меня всего 2 разных друга на Facebook, и обоих зовут «Джо Хаммер». Давайте также представим, что только один из них также использует приложение, которое использую я. Приложение позволяет пользователям отмечать друзей на Facebook. Для этого есть раскрывающийся список, в котором показаны все друзья, которых пользователь может отметить. Раньше в списке отображались оба «Джо Хаммерс», поскольку API «я/друзья» возвращал всех друзей. Теперь должно быть два отдельных списка: один для отображения друзей, которые уже используют приложение (результат «я/друзья» или пользователи из области приложения), а второй список — для приглашения тех, кто не использует приложение. еще (результат "me/taggable_friends"). Однако на странице в первом списке будет правильно отображаться только один пользователь «Джо Хаммер», зарегистрированный в приложении. Но во втором списке будут показаны оба Джо Хаммера, поскольку технически они оба могут быть помечены. Поскольку набор результатов, возвращаемый из «me/taggable_friends», использует зашифрованные временные идентификаторы пользователей, у меня нет возможности отфильтровать пользователей из списка друзей с тегами, которые уже находятся в «зарегистрированном» списке друзей. Как вы можете себе представить, это делает пользовательский интерфейс немного уродливым, поскольку в обоих списках появляются дубликаты пользователей.

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


person Archil Kublashvili    schedule 01.05.2015    source источник


Ответы (1)


Единственный способ, который я могу придумать (и я предполагаю, что это было и вашим намерением), — это прочитать друзей с /me/taggable_friends и /me/friends и сравнить их по именам. Очевидно, что те, кто не попал в число /me/friends, не пользуются приложением.

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

person luschn    schedule 01.05.2015