2012-06-28 70 views
0

嘿我想通過python的urllib2庫發佈到Facebook的分數。Facebook發佈HTTP錯誤400:錯誤的請求

import urllib2,urllib 

url = "https://graph.facebook.com/USER_ID/scores" 
data = {} 
data['score']=SCORE 
data['access_token']='APP_ACCESS_TOKEN' 
data_encode = urllib.urlencode(data) 
request = urllib2.Request(url, data_encode) 
response = urllib2.urlopen(request) 
responseAsString = response.read() 

我收到此錯誤:如果

response = urllib2.urlopen(request) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 124, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 389, in open 
    response = meth(req, response) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 502, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 427, in error 
    return self._call_chain(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 361, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 510, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 400: Bad Request 

不知道這是與Facebook的Open Graph的或不正當的urllib2 API的使用。

+2

錯誤的內容是什麼? – Igy

+0

儘管如此,應該從Facebook的錯誤錯誤 – Igy

回答

0

我跑了你的代碼,並得到了同樣的錯誤(沒有更多的錯誤在身體,會發表評論,但不能我猜),所以我googled「發佈Facebook的得分。」

我相信您需要先授予您的應用程序權限才能首先發布分數,除非您已經這樣做了。見http://developers.facebook.com/blog/post/539/

+0

是的,沒有權限。謝謝 – Abhishek

0

您可能需要提供user:agent作爲某些瀏覽器。我記得在某個網站上運行爬蟲程序時發現類似的錯誤,因爲它檢測到沒有瀏覽器正在調用它。

+3

錯誤對於抓取網站可能是真的 - 但FB圖形API被_designed_查詢服務器端腳本(等),所以用戶代理髮送(或者如果有的話)根本就不重要。 – CBroe