我正在尝试使用Python搜索Facebook Graph for Pages。当我在Facebook网页上使用Graph API Explorer时,我输入:
search?q=aquafresh&type=page
我得到了我正在寻找的结果。当我在Python中做同样的事情(在安装PythonForFacebook模块之后):
post = graph.get_object("search?q=aquafresh&type=post")
我明白了:
facebook.GraphAPIError: Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api
我相信我正在使用令牌正确识别,我使用的是与网页相同的内容,并且可以在网页上使用。我也可以在Python中进行基本查询(例如,查询“我”工作正常)
答案 0 :(得分:3)
我想出了一种不涉及Facebook Graph API的方法。而是使用请求库:
import requests
token = "your_token"
query = "your_query"
requests.get("https://graph.facebook.com/search?access_token=" + token + "&q=" + query + "&type=page")
答案 1 :(得分:1)
对我有用的是:
graph.request('search', {'q': 'aquafresh', 'type': 'page'})
这不完全是你需要的,但是当我尝试搜索包含“aquafresh”的帖子(而不是页面)时,我得到:
In [13]: graph.request('search', {'q': 'aquafresh', 'type': 'post'})
---------------------------------------------------------------------------
GraphAPIError Traceback (most recent call last)
<ipython-input-13-9aa008df54ba> in <module>()
----> 1 graph.request('search', {'q': 'aquafresh', 'type': 'post'})
/home/telofy/.buildout/eggs/facebook_sdk-0.4.0-py2.7.egg/facebook.pyc in request(self, path, args, post_args)
296 except urllib2.HTTPError, e:
297 response = _parse_json(e.read())
--> 298 raise GraphAPIError(response)
299 except TypeError:
300 # Timeout support for Python <2.6
GraphAPIError: (#11) Post search has been deprecated
(我想知道为什么弃用不会仅仅引起警告。)
文档中似乎缺少request
方法,但它是documented in the code。
答案 2 :(得分:1)
这应该有效:
import facebook
aToken = "your access tocken"
graph = facebook.GraphAPI(access_token=aToken, version="2.10")
data = graph.search(
q='aquafresh',
type='post'
)
答案 3 :(得分:0)
您可以直接使用`GraphAPI
的search
方法
import facebook
TOKEN = "" # Your GraphAPI token here.
graph = facebook.GraphAPI(access_token=TOKEN, version="2.7")
posts = graph.search(q="aquafresh", type="post")
print posts['data']
而不是: -
$ pip install facebook-sdk
使用: -
pip install -e git+https://github.com/mobolic/facebook-sdk.git#egg=facebook-sdk