2011-08-13 2 views
3

Каков наиболее практичный способ доступа к ссылкам, общим для друзей друзей facebook пользователей?Facebook API: Все ссылки предоставлены всеми друзьями?

Я ищу, чтобы очистить все ссылки до нескольких доменов, которыми пользуются друзья аутентифицированного пользователя.

Есть ли способ спросить «Все ссылки домена X», «Все ссылки» (и я буду фильтровать для домена X), или мне нужно получить каждого друга и проанализировать каждый отдельный канал? Я предполагаю, что есть основной «входящий» канал, который будет всеми ссылками со всех друзей. Правда? Не правда?

ответ

2
select title, url, owner from link where owner in (select uid2 from friend where uid1 = me() limit 100) 

вернет ссылки, которыми пользуются друзья аутентифицированного пользователя. Затем вам нужно будет отфильтровать URL-адреса для интересующих вас доменов. Поскольку поле URL-адреса в таблице ссылок не индексируется, вы не можете выполнить WHERE на нем в FQL.

+0

Добавление 'ORDER BY created_time DESC' к внешнему запросу сделало это идеальным ответом. Заключительный запрос: 'select link_id, title, url, owner, owner_comment, created_time, изображение из ссылки, в которой находится владелец (выберите uid2 от друга, где uid1 = me() LIMIT 100) ORDER BY created_time DESC' –

+0

Замечательно, , Я также обнаружил, что вы можете добавить предложение WHERE в поле URL, поскольку у вас уже есть WHERE в одном из индексированных полей, таких как владелец. Поэтому, если вы ищете определенный URL-адрес, вы можете: выбрать ссылку_ид, заголовок, URL-адрес, владелец, owner_comment, created_time, изображение из ссылки, в которой находится владелец (выберите uid2 от друга, где uid1 = me() LIMIT 100) и url = 'http://f8.facebook.com/' ORDER BY created_time DESC –

+1

Может ли это поддерживать подстановочный поиск, например 'url LIKE '% youtube.com%''? –

0

Для поиска домена попробуйте добавить что-то наподобие WHERE strpos (url, 'domain.com')> 0, обратитесь к индексируемому столбцу в разделе where.

Смежные вопросы