【问题标题】:FQL Multi-queryFQL 多查询
【发布时间】:2013-10-30 19:10:29
【问题描述】:

我仍然不太确定多查询语法..

我想获取一些照片数据,我想将其与地点结合起来,以便我可以获取照片的地点信息..

这是我的代码

query1 = "SELECT+object_id+,+place_id+,+caption+,+images+,+owner+,+created+FROM+photo+" \
         "WHERE+owner=%s+AND+created>=%s" % (update_user, update_ti
query2 = "SELECT+name+,+latitude+,+longitude+FROM+place+" \
         "WHERE+page_id+IN+(+SELECT+place_id+FROM+#query1+)"
update_url = "https://graph.facebook.com/fql?q={'query1':'%s', 'query2':'%s'}" \
             "&access_token=%s" % (query1, query2, client.token)

在http请求中会是这样的

https://graph.facebook.com/fql?q={"query1":"SELECT+object_id,+place_id,+caption,+images,+owner,+created+FROM+photo+WHERE+owner=[user_id]+AND+created>=1383158944","query2":"SELECT+name,+latitude,+longitude+FROM+place+WHERE+page_id+IN+(SELECT+place_id+FROM+#query1+)"}&access_token=my_token

它返回给我 OAuthException:

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

更新代码(工作):

query1 = "SELECT object_id, place_id, caption, images, owner, created FROM photo " \
         "WHERE owner=%s AND created>=%s" % (update_user, update_time)
query2 = "SELECT name, latitude, longitude FROM place " \
         "WHERE page_id IN (SELECT place_id FROM #query1)"
query_params = {
    'q': '{"query1":"%s", "query2":"%s"}' % (query1, query2),
    'access_token': client.token
}
update_url = "https://graph.facebook.com/fql?%s" % urllib.urlencode(query_params)

【问题讨论】:

    标签: python facebook-fql fql.multiquery


    【解决方案1】:

    查询需要进行 URL 编码。

    FQL multiquery from python fails with unicode query

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      相关资源
      最近更新 更多