1

我正在尝试从我的本地应用程序创建一个 Facebook 事件,并且我有一个用户输入事件信息的表单。据此我必须打电话给https://graph.facebook.com/USERID/events

为此,我使用了 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: 
4

1 回答 1

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")

然后你可以缩小你的问题。

于 2012-06-29T12:57:09.000 回答