确定Facebook错误代码100的确切原因

时间:2011-11-04 21:42:10

标签: python django facebook facebook-graph-api django-socialauth

我正在试验facebook并尝试通过Graph API创建一个事件。我正在使用django和github的python-facebook-sdk。我可以成功发布到我的墙上拉朋友等。

我正在使用django-social-auth进行Facebook登录,并拥有settings.py权限:

FACEBOOK_EXTENDED_PERMISSIONS = ['publish_stream','create_event','rsvp_event']

在Facebook上的图形api资源管理器我的请求有效,所以我知道要使用哪些参数,以及我正在使用它们。

这是我的python代码:

def new_event(self):
    event = {}
    event['name'] = name
    event['privacy'] = 'OPEN'
    event['start_time'] = '2011-11-04T14:42Z'
    event['end_time'] = '2011-11-05T14:46Z'

    self.graph.put_object("me", "events", args=None, post_args=event)

调用facebook api的代码大致是:( access_token也添加到post_args,然后转换为post_data和urlencoded。

    file = urllib.urlopen("https://graph.facebook.com/me/events?" +
                          urllib.urlencode(args), post_data)

我得到的错误是:

Exception Value: (#100) Invalid parameter

我正在试图弄清楚出了什么问题,但我也很好奇如何弄清楚整体出了什么问题所以我将来可以调试它。它似乎过于笼统,因为我不知道出了什么问题。

1 个答案:

答案 0 :(得分:0)

不确定post_args是如何工作的,但这次调用就是诀窍

graph.put_object("me","events",start_time="2013-11-04T14:42Z", privacy="OPEN", end_time="2013-11-05T14:46Z", name="Test Event")

无效参数很可能指向您如何将参数作为post_args提供。我不认为SDK曾经被设计成像这样提供它。我可能会弄错,因为我不确定post_args会做什么。

另一种基于put_object**data的设置方式的方法是

graph.put_object("me","events", **event)