2011-09-20 35 views
2

我有以下用的urllib2它打印HTTP錯誤代碼403:禁止,但如果我使用的urllib而不是提取網址,我看不出有什麼錯誤,我確實得到我的朋友的名單。使用的訪問令牌在兩種情況下都是相同的。HTTP錯誤403禁止使用的urllib2但是用Facebook的圖形API的urllib

url = 'https://graph.facebook.com/me/friends/' 
params = {'access_token': 'a valid access-token...', 'fields': 'id,name,birthday'} 
req = urllib2.Request(url, data=urllib.urlencode(params)) 
try: 
    con = urllib2.urlopen(req) 
    print con.read() 
except Exception as excp: 
    print excp.read() 

請提出可能的問題。

回答

5

這一個是現在解決了。問題在於請求應該是GET而不是POST,因此所有查詢參數都應該通過url傳遞,而不是作爲POST數據傳遞。所以在我的情況下,得到朋友的代碼會是這個樣子:

url = 'https://graph.facebook.com/me/friends/' 
params = {'access_token': 'a valid access-token...', 'fields': 'id,name,birthday'} 

try: 
    con = urllib2.urlopen(url + '?' + urllib.urlencode(params)) 
    print con.read() 
except Exception as excp: 
    print excp 

希望它可以幫助別人。

+0

你能接受自己的答案。點擊綠色箭頭按照答案關閉問題 –