如何通过Graph API发送Facebook App Notification?

时间:2013-07-30 17:35:59

标签: python facebook facebook-graph-api urllib2 urllib

我希望我的Facebook画布应用程序在与应用程序交互时向用户的朋友发送App Notification。这是我的服务器端代码(使用App Engine和urllib)。 conf.FACEBOOK_APP_ACCESS_TOKEN是一个App Access Token,我通过调用Graph API然后硬编码返回的值来获得,如链接中所述。应用访问令牌类似于:

426547656256546|4fhe34FJdeV3WvfF6SNfehs7GfW

这不是我的实际代币:我已经用其他数字代替数字,其他大写字母用大写字母等,所以你可以看到格式。

url = 'https://graph.facebook.com/'+friendID+'/notifications'
values = {'access_token' : conf.FACEBOOK_APP_ACCESS_TOKEN,
          'href' : 'http://localhost:8080/', 
          'template' : '@['+userID+'] says hi.'}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
urllib2.urlopen(req)

urlopen给出错误:

WARNING  Stripped prohibited headers from URLFetch request: ['Content-Length', 'Host']
ERROR    HTTP Error 403: Forbidden

在此代码中,我需要更正哪些内容才能成功发送应用通知?

1 个答案:

答案 0 :(得分:0)

应用程序通知只能从Canvas应用程序发送。我的应用在Facebook设置中设置为Website with Facebook Login,不允许通知。为了解决这个问题,除了App on Facebook之外我还检查了Website with Facebook Login(虽然我认为它只适用于App on Facebook)并指定了画布网址。