2012-06-29 19 views
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: 

回答

1

Facepy使與Facebook的交互更簡單,試試看。

發佈事件的圖形會像

graph.post('USERID/events', form_fields) 

要進行調試,可以在認證工作由發佈評論測試:

graph = GraphAPI(request.user.get_profile().access_token) 
graph.post(path="me/feed", message="hello FB", caption="hello FB", description="hello FB") 

然後你就可以縮小你的問題。

+0

得到此錯誤 - 不支持的操作數類型爲 - :'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

+0

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」}) –

+0

出現了一個非常奇怪的錯誤,「OAuthError at/pouch /,沒有異常提供」 – user972616

相關問題