Получить доступные пользователю запросы, отправленные другими пользователями

BUMP: Это не мертвый запрос. Я все еще надеюсь получить вразумительный ответ от кого-нибудь из Facebook или кого-то еще. Спасибо.

Пересмотренный запрос: я не знаю, задаю ли я неправильный вопрос или задаю правильный вопрос, на который никто не может ответить.

Новые вопросы:

Можем ли мы использовать FQL или другие средства для получения всех запросов, отображаемых в reqs.php? Я по существу ищу что-то вроде этого:

SELECT request_id, app_id FROM apprequest WHERE recipient_uid = me()

Уведомления возвращают эти данные, но запросы приложений часто группируются в одну запись со ссылкой, идентифицирующей некоторые, но не все запросы. Мне нужны отдельные записи для всех открытых запросов приложений. Данные для этого должны быть доступны, так как это данные, используемые для создания уведомлений! Это только кажется, что это не делается доступным для нас. :(

Спасибо!

Исходный запрос следует:

У меня есть приложение, которое объединяет различные источники информации Facebook для пользователя. Один из наборов данных, над которыми я работаю, — это набор запросов, отправленных этому пользователю друзьями. Например, я открываю GreatApp и нажимаю отправить вам запрос. Вы можете использовать или не использовать GreatApp, но давайте предположим, что вы не заблокировали запросы от него. Теперь вы открываете мое приложение AggregatorApp, которое показывает вам мой запрос и включенную ссылку на GreatApp. Данные, которые вы видите, такие же, как и на reqs.php, но в другом формате, с гораздо большим количеством данных, и, конечно, просто намного лучше. ;)

Я думал, что это то, что мы получили в apprequests. Из этот вопрос Насколько я понимаю, apprequests — это набор запросов, отправляемых текущим приложением.

При использовании path/me/apprequests нам не нужно указывать идентификатор приложения. Но я считаю, что здесь нам нужно предоставить токен приложения, а не токен пользователя. Это правильно? Если это верно, то это подтверждает, что запросы отправляло это приложение, а не запросы, сгенерированные другими приложениями.

При использовании FQL нам необходимо определить uid приложения, а также идентификатор запроса, чтобы запросить таблицу apprequests. Я это понимаю, но даже с действительным идентификатором запроса и идентификатором приложения (и действительными разрешениями) FQL не возвращает данные запроса. (Я не проверял идентификатор приложения, возможно, это ключ.)

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

Спасибо!

Другие темы, задающие тот же вопрос без хорошего (или никакого) ответа: thread1 thread2


person TonyG    schedule 26.10.2011    source источник
comment
Возможно, мне нужно подойти к этому по-другому... Кто-нибудь знает, как получить данные запроса, которые мы видим на facebook. com/sk=apps и facebook.com/games, используя любую из библиотек Facebook, ФКЛ и т.д.? Мне не нужен доступ к запросам, отправленным моим собственным приложением. Я хочу импортировать коллекцию игровых запросов и запросов приложений из других приложений. Спасибо!   -  person TonyG    schedule 27.11.2011
comment
Я отправил это как ошибку, указывающую на то, что документация недоступна для того, что кажется функциональностью. который существует (очевидно, что reqs.php может быстро отображать запросы, чтобы база данных была доступна). Facebook может отклонить это как проблему с документами, но может предоставить отзыв или реклассифицировать его как запрос на улучшение API.   -  person TonyG    schedule 27.12.2011


Ответы (4)


Вам нужно сделать запрос API графа, чтобы получить соединение apprequests для пользователя. Текущую документацию см. здесь: http://developers.facebook.com/docs/reference/api/user/.

В таблице Connections документация правильно отмечает, что вам нужен токен доступа к приложению для получения запросов к этому пользователю. В документации (http://developers.facebook.com/docs/reference/api/user/#apprequests) есть ошибка, в которой утверждается, что вам нужен токен доступа пользователя. Это неверно и (как вы видели) вернет пустой список запросов.

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

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

person Noah Callaway    schedule 02.03.2012
comment
Я думаю, что вы правы, Ной, и это согласуется с последним ответом, который я только что опубликовал. Спасибо. - person TonyG; 03.03.2012

Что я узнал (до того, как мой вопрос был удален), так это то, что вы не можете получить доступ к запросам с токеном пользователя, а токены приложения могут получить доступ только к запросам, отправленным приложением (и я обнаружил это сам в документации и поиграв с обозреватель графов). Поскольку я знаю, что для обработки запросов существуют приложения для iPhone и плагины для браузера, я предполагаю, что они обращаются к самой странице и анализируют данные (например, парсинг сайта). Недостатком этого подхода является то, что на странице запросов одновременно отображается только около 100 запросов от каждого приложения.

(Если только некоторые люди не нашли способ, которым они не делятся...)

person Kat Cox    schedule 26.12.2011
comment
Я с тобой @Kat, спасибо за комментарий! Я действительно не думаю, что эти другие сервисы занимаются очисткой страниц, особенно с учетом того, что Facebook несколько раз менял эту страницу в последнее время. Скрапинг выполняется неаккуратно и открывает путь к огромному недовольству пользователей в любое случайное время, когда скрейпируемая страница изменяется. (Если бы запросы были доступны только через RSS, а?) При этом других решений у меня пока нет. - person TonyG; 27.12.2011

Вы правы, вам нужен app_access_token, а не user_access_token.

Я думаю, что в документации FB есть ошибка.

person Ran    schedule 02.12.2011

Окончательный ответ был предоставлен разработчиком Facebook здесь в ответ на мой отчет об ошибке. Разрешение состоит в том, что это сделано по замыслу. Это относится к примечанию @noah-callaway о том, что в запросах, вероятно, есть некоторые данные, относящиеся к конкретному приложению, которые не должны быть доступны другим приложениям.

На мой взгляд, это позор, потому что, поскольку Facebook предназначен для обмена данными между друзьями, я думаю, что это добавляет измерение в экосистему, когда приложения могут обмениваться (ограниченной и разумной) информацией друг с другом.

Спасибо за ответы!

person TonyG    schedule 02.03.2012