Python 获取用于graph API应用程序搜索的Facebook访问令牌

Python 获取用于graph API应用程序搜索的Facebook访问令牌,python,facebook,facebook-graph-api,Python,Facebook,Facebook Graph Api,我已经使用下面的链接在graph API上搜索Facebook应用程序很长一段时间了。请参阅下面的链接,搜索包含“bingo”一词的应用程序 直到7月10日Facebook做出改变之前,一切都很顺利,见以下网站: Graph API搜索界面在2013年第3季度的迁移过程中有待定的更改。请参阅博客文章,了解更多关于更改内容的信息。博客文章中列出的更改将于2013年7月10日上线 现在,我尝试按照下面的示例获取应用程序访问令牌,并将access_token=附加到上面的链接()中,但我仍然从Fac

我已经使用下面的链接在graph API上搜索Facebook应用程序很长一段时间了。请参阅下面的链接,搜索包含“bingo”一词的应用程序

直到7月10日Facebook做出改变之前,一切都很顺利,见以下网站:

Graph API搜索界面在2013年第3季度的迁移过程中有待定的更改。请参阅博客文章,了解更多关于更改内容的信息。博客文章中列出的更改将于2013年7月10日上线

现在,我尝试按照下面的示例获取应用程序访问令牌,并将access_token=附加到上面的链接()中,但我仍然从Facebook graph获得相同的响应:

{
   "error": {
      "message": "(#200) Must have a valid access_token to access this endpoint",
      "type": "OAuthException",
      "code": 200
   }
}

有人知道如何解决这个问题吗?

您必须将访问令牌编码到请求的http头中。对于Facebook1.1API,建议使用用于python的OAuth2lib

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上定义并注册应用程序。()

致以最良好的祝愿,
戴夫

谢谢戴夫,我真的很感谢你的帮助!你能解释一下Twitter消费者密钥+机密与Facebook API的关系吗。http_url=url中的url参数也是Facebook上应用程序搜索的url,对吗?这个响应似乎不准确。如果查看facebook搜索api的文档。它声明需要访问令牌(而不是传统的宣誓令牌)。对不起,我把twitter和facebook完全搞混了。不知道这个答案是否对你的facebook有帮助。