1
我想從本地應用程序創建Facebook事件,並且我有一個表單,用戶輸入事件信息。據this,我必須做出後調用https://graph.facebook.com/USERID/events
如何在django中正確地對Facebook Graph API進行POST調用
要做到這一點,我用的urlopen這樣
form_fields = {
"access_token": request.user.get_profile().access_token,
"name" : "name",
"start_time" : "01/01/2012"
}
urllib2.urlopen(update_url,urllib.urlencode(form_fields))
運行代碼我得到
HTTP Error 400: Bad Request
和調試後,程序的變量值爲
update_url = str: https://graph.facebook.com/XXXXXXXX/events
form_fields = dict: {'access_token': u'XXXXXX', 'start_time': datetime.datetime(2012, 1, 6, 0, 0), 'location': 'someplace', 'name': u'ab'}
update_url似乎是正確的,我猜問題是與form_fields。那麼我應該如何將這些字段賦予Facebook Graph API?
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Akshay\workspace\example\example\planpouchproto\views.py" in createPouch
20. graph.post('%s/events' %request.user.get_profile().facebook_id, **{"access_token": request.user.get_profile().access_token,"name" : cd['event_name'],"start_time" : "01/01/2012"})
File "C:\Users\Akshay\workspace\example\example\facepy\graph_api.py" in post
65. retry = retry
File "C:\Users\Akshay\workspace\example\example\facepy\graph_api.py" in _query
240. return load(method, url, data)[0]
File "C:\Users\Akshay\workspace\example\example\facepy\graph_api.py" in load
196. result = self._parse(response.content)
File "C:\Users\Akshay\workspace\example\example\facepy\graph_api.py" in _parse
282. error.get('code', None)
Exception Type: OAuthError at /pouch/
Exception Value:
得到此錯誤 - 不支持的操作數類型爲 - :'dict'和'int'。這是我試過的。 graph.post('%s/events'%request.user.get_profile()。facebook_id,{「access_token」:request.user.get_profile()。access_token,「name」:cd ['event_name'],「start_time」 :「01/01/2012」}) – user972616
Try:graph.post('%s/events'%request.user.get_profile()。facebook_id,** {「access_token」:request.user.get_profile()。access_token ,「name」:cd ['event_name'],「start_time」:「01/01/2012」}) –
出現了一個非常奇怪的錯誤,「OAuthError at/pouch /,沒有異常提供」 – user972616