FQL multiquery с HTTP GET - работает в Graph API explorer, но не где-нибудь еще? - PullRequest
2 голосов
/ 04 ноября 2011

Этот FQL-запрос, например:

https://graph.facebook.com/fql?q={"posts":"SELECT actor_id,message,permalink,created_time,comments.count FROM stream WHERE source_id=me()","actors":"SELECT uid,name,pic_square,profile_url FROM user WHERE uid IN (SELECT actor_id FROM #posts)"}

отлично работает в Graph API Explorer , но когда вы прямо в браузере, вы получите:

{
        "error": {
        "message": "(#601) Parser error: unexpected '{' at position 0.",
        "type": "OAuthException"
    }
}

Что мне здесь не хватает? Опять что-то осуждается Facebook в их API? Я хочу сделать FQL-мультизапрос, используя GET (фактически используя JSONP в конце) - без , используя Javascript SDK.

Кстати, я уверен, что это не проблема авторизации / access_token.

Ответы [ 2 ]

8 голосов
/ 04 ноября 2011

URL-код значения параметра q. :, # - это специальные символы в URL. Пример:

https://graph.facebook.com/fql?q=%7B%22posts%22%3A%22SELECT%20actor_id%2Cmessage%2Cpermalink%2Ccreated_time%2Ccomments.count%20FROM%20stream%20WHERE%20source_id%3Dme%28%29%22%2C%22actors%22%3A%22SELECT%20uid%2Cname%2Cpic_square%2Cprofile_url%20FROM%20user%20WHERE%20uid%20IN%20%28SELECT%20actor_id%20FROM%20%23posts%29%22%7D

Если вы используете PHP, используйте что-то вроде этого:

$url = 'https://graph.facebook.com/fql?q=' . urlencode($my_fql_query);
0 голосов
/ 23 октября 2012

Вам нужно использовать: https://graph.facebook.com/fql?queries=...

Не используйте «q», используйте имя параметра «query».

...