使用Python进行Facebook搜索

时间:2015-06-30 19:58:14

标签: python facebook facebook-graph-api

我正在尝试使用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中进行基本查询(例如,查询“我”工作正常)

4 个答案:

答案 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