2013-02-16 2 views
6

Предположим, что два пользователя используют приложение и предоставили приложению соответствующие разрешения для извлечения их подобных. Можно ли использовать FQL или график api, чтобы найти то, что им нравится? Подобно тому, как вы можете найти друг друга между двумя пользователями, используя график api. Я не думаю, что такой вызов api существует, когда я прошел через документы, но я, возможно, пропустил его. Я хотел бы знать, возможно ли это, и если да, то как это можно сделать. Я действительно вонючу с SQL и только начинаю с FQL и могу получить все подобные от одного пользователя, но как вы получаете только общие предпочтения между двумя пользователями (если вообще возможно)?Как получить взаимную заинтересованность facebook между пользователями, которые используют приложение

ответ

3

Этого можно достичь с помощью FQL.

1) Выберите страницы пользователя 1

SELECT page_id FROM page_fan WHERE uid = $user1 

2) Выберите страницы пользователя 2, и использовать PAGE_ID от предыдущего запроса в другой фильтр (он же - вспомогательный запрос)

Что дает вам окончательный полный запрос, который выполняет следующие вопросы:

SELECT page_id FROM page_fan WHERE uid= $user2 AND page_id IN (SELECT page_id FROM page_fan WHERE uid = $user1) 
+0

Удивительно, спасибо большое. Это объяснение особенно ценилось. – landland

+0

Привет, Томми, после игры с этим еще несколько, похоже, не работает и возвращает пустой набор данных. Для тестирования я использовал двух пользователей и сделал SELECT page_id FROM page_fan WHERE uid = $ user1, а затем SELECT page_id FROM page_fan WHERE uid = $ user2. Они оба содержат общий page_id, когда я дважды проверял. Однако, когда я комбинирую инструкцию из вашего примера, используя SELECT page_id FROM page_fan WHERE uid = $ user2 И page_id IN (SELECT page_id FROM page_fan WHERE uid = $ user1), возвращаемые данные пустые. Это использует инструмент запросов FQL от Facebook. Есть идеи? – landland

+0

Логически, запрос работает. Поэтому я не знаю, есть ли проблема с выбором времени на это или что. Попробуйте сделать это, выполнив несколько запросов и посмотрев, что вы получите: https://developers.facebook.com/docs/reference/rest/fql.multiquery/ –

0

FQL больше не доступен. Вы можете сделать это с помощью API-интерфейса графика из facebook. Что-то вроде этого:

graph.setAccessToken(user.facebookToken); 
    graph.get("/"+targetFacebookId+"?fields=context", null, function(err, result) { 
    if (err) { 
     notDoStuff(err); 
    } else { 
     doStuff(result); 
    } 
    }); 
Смежные вопросы