2015-06-30 28 views
1

我正在嘗試使用Python搜索Facebook Graph頁面。當我使用圖形API瀏覽器在Facebook上的網頁,我進入:使用Python進行Facebook搜索

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中進行基本查詢(例如,查詢「我」工作正常)

回答

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

我什麼工作是:

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

0

這應該工作:

import facebook 
aToken = "your access tocken" 

graph = facebook.GraphAPI(access_token=aToken, version="2.10") 
data = graph.search(
      q='aquafresh', 
      type='post' 
      ) 
+1

遺憾地說,但我認爲,Facebook已經棄用這個版本。 –