3

我一直在使用下面的链接来搜索图形 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上的以下文本:

随着 2013 年第 3 季度的迁移,Graph API 搜索界面有待更改。有关更改内容的更多信息,请参阅博客文章。博客文章中列出的更改将于 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 图表中得到相同的响应:

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

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

4

1 回答 1

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

最好的问候,戴夫

于 2013-07-18T11:46:16.413 回答