2013-05-21 34 views
0

我用下面的查询中https://developers.facebook.com/tools/explorer?fql=Facebook的查询语言使用python

SELECT aid FROM album WHERE owner = "100001741044617"; 

和我得到了正确的输出。

我试着使用相同的查询通过python和提取输出我得到一个问题。 我张贴的Python代码和输出

CODE:

import urllib 
query = "SELECT aid FROM album WHERE owner = \"100001741044617\"" 
print(query) 
query = urllib.quote(query) 
print(query) 
url = "https://graph.facebook.com/fql?q=" +query 

data = urllib.urlopen(url).read() 
print(data) 

输出

[[email protected] ~]# python /opt/fql.py 
SELECT aid FROM album WHERE owner = "100001741044617" 
SELECT%20aid%20FROM%20album%20WHERE%20owner%20%3D%20%22100001741044617%22 
{"error":{"message":"A user access token is required to request this resource.","type":"OAuthException","code":102}} 

我已经生成所需的访问令牌user_photoes。 请让我知道该怎么做。谢谢。

回答

1

访问令牌需要包含在您的查询中。例如,要获得所有朋友:

query = "SELECT uid2 FROM friend WHERE uid1 = me()" 
params = urllib.urlencode({'q': query, 'access_token': YOUR_ACCESS_TOKEN}) 
print params 

'q=SELECT+uid2+FROM+friend+WHERE+uid1+%3D+me%28%29&access_token=YOUR_ACCESS_TOKEN' 

url = "https://graph.facebook.com/fql?" + params 
data = urllib.urlopen(url).read() 
print(data) 

'{"data":[{"uid2":"#######"},{"uid2":"#######"},{"uid2":"#######"}, ... 
+0

嗨,感谢您的帮助。我试图执行它,它无法识别accesstoken。我以数字和字符串的形式尝试。但没有工作。 – Anirudh

+0

您是如何生成访问令牌的?尝试使用[访问令牌工具](https://developers.facebook.com/tools/access_token/)生成一个,并检查它是否适用于您,至少使用上面的示例。它应该确定问题是否与你的代币生成有关。请注意,如果您使用的是坏标记,则响应会明确告诉您(无法记住确切的措辞) - 如果响应仅为空,那么您的fql查询就是问题所在。让我知道你是否需要更多帮助。 – richsilv