我在django应用程序中使用python-social-auth进行社交身份验证。现在我要从这个应用程序发布facebook状态。
起初我从https://developers.facebook.com/创建了一个Facebook应用程序。以下是我遵循的步骤,
然后我补充说,
SOCIAL_AUTH_FACEBOOK_KEY='****************'
SOCIAL_AUTH_FACEBOOK_SECRET='**************************'
和
SOCIAL_AUTH_FACEBOOK_SCOPE = [
'publish_actions'
]
到settings.py。
当我运行此应用程序并以facebook身份验证开始时,它会显示以下弹出窗口,
当我点击立即播放按钮时,它成功重定向到我的django应用程序的主页并发布我的Facebook状态,
这是我发布facebook状态的代码,
social_user = request.user.social_auth.filter( provider='facebook',)[0]
graph = facebook.GraphAPI(social_user.extra_data['access_token'])
graph.put_object("me", "feed", message="here is status messgae")
但是当另一个用户[我的脸书帐户以外]试图验证这个应用程序时,会显示这样的弹出窗口,
在第一种情况下,我已成功发布我的状态,但在第二种情况下,我[第二次弹出窗口中的消息清楚地显示应用程序无法访问用户墙。]
这是我第二种情况的错误,
GraphAPIError at /
(#200) The user hasn't authorized the application to perform this action.
我的问题是,为什么我的应用无法在其他墙上发布?
我在创建Facebook应用时是否有任何错误配置(或错过了某些内容)?
或者我必须在settings.py中添加其他内容。
答案 0 :(得分:0)
应用设置很好。实际上,Facebook最近做了一些重大更改并引入了v2.0(了解有关此here的更多信息)
所以从现在开始(你甚至可以在第一个对话框中查看警告) -
如果您的应用要求的时间超过
public_profile
,user_friends
,那么在您的应用可供应用开发者以外的人使用之前,需要经过Facebook审核。
只有应用的测试人员/开发人员可以在Facebook审核之前使用其他权限测试该应用。
您可以查看review documentation了解详情。