我一直在使用以下链接在图API上搜索Facebook应用程序已有一段时间了。请参阅以下链接,搜索其中包含“bingo”一词的应用程序。
https://graph.facebook.com/search?type=application&q=bingo
直到7月10日,当Facebook进行更改时,一切正常,请参阅以下https://developers.facebook.com/docs/reference/api/search/#access_tokens上的文字:
图谱API搜索界面在Q3 2013迁移中有待更改。有关更改内容的更多信息,请参阅博客文章。博客文章中列出的更改将于2013年7月10日生效。
现在,我尝试按照https://developers.facebook.com/docs/reference/api/search/#access_tokens上的示例获取应用程序访问令牌并将access_token =附加到上面的链接(https://graph.facebook.com/search?type=application&q=bingo),但我仍然从Facebook图表获得相同的响应:< / p>
{
"error": {
"message": "(#200) Must have a valid access_token to access this endpoint",
"type": "OAuthException",
"code": 200
}
}
有谁知道如何解决这个问题?
答案 0 :(得分:0)
您必须将访问令牌编码为请求的http标头。使用Facebook 1.1 API,建议使用oauth2 lib for python。
import oauth2
import urllib
access_token_key = "Your token key"
access_token_secret = "Your token secret"
consumer_key = "Your consumer key"
consumer_secret = "Your consumer secret"
oauth_token = oauth.Token(key=access_token_key, secret=access_token_secret)
oauth_consumer = oauth.Consumer(key=consumer_key, secret=consumer_secret)
req = oauth2.Request.from_consumer_and_token(oauth_consumer,
token=oauth_token,
http_method=http_method,
http_url=url,
parameters=parameters)
req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)
headers = req.to_header()
if http_method == "POST":
encoded_post_data = req.to_postdata()
else:
encoded_post_data = None
url = req.to_url()
urllib.urlopen(url, encoded_post_data)
要获得您的oauth令牌和秘密,您需要使用twitter定义和注册您的应用程序。 (http://developers.twitter.com)
祝你好运, 戴夫