Facebook状态更新使用django

时间:2014-06-18 18:35:20

标签: python django facebook facebook-graph-api

我在django应用程序中使用python-social-auth进行社交身份验证。现在我要从这个应用程序发布facebook状态。

起初我从https://developers.facebook.com/创建了一个Facebook应用程序。以下是我遵循的步骤,

  1. 制作新应用
  2. 显示名称和命名空间。选择作为游戏的类别然后创建应用程序。
  3. 应用设置 - >添加平台 - >网站 - > site url = test1.com:8000 - >保存更改。
  4. 我还向公众提供了该应用程序及其所有实时功能。
  5. 然后我补充说,

    SOCIAL_AUTH_FACEBOOK_KEY='****************'
    SOCIAL_AUTH_FACEBOOK_SECRET='**************************'
    

    SOCIAL_AUTH_FACEBOOK_SCOPE = [
        'publish_actions'
    ]
    

    到settings.py。

    当我运行此应用程序并以facebook身份验证开始时,它会显示以下弹出窗口,

    enter image description here

    当我点击立即播放按钮时,它成功重定向到我的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")
    

    但是当另一个用户[我的脸书帐户以外]试图验证这个应用程序时,会显示这样的弹出窗口,

    enter image description here

    在第一种情况下,我已成功发布我的状态,但在第二种情况下,我[第二次弹出窗口中的消息清楚地显示应用程序无法访问用户墙。]

    这是我第二种情况的错误,

    GraphAPIError at /
    (#200) The user hasn't authorized the application to perform this action.
    

    我的问题是,为什么我的应用无法在其他墙上发布?

    我在创建Facebook应用时是否有任何错误配置(或错过了某些内容)?

    或者我必须在settings.py中添加其他内容。

1 个答案:

答案 0 :(得分:0)

应用设置很好。实际上,Facebook最近做了一些重大更改并引入了v2.0(了解有关此here的更多信息)

所以从现在开始(你甚至可以在第一个对话框中查看警告) -

  

如果您的应用要求的时间超过public_profileemailuser_friends,那么在您的应用可供应用开发者以外的人使用之前,需要经过Facebook审核。

只有应用的测试人员/开发人员可以在Facebook审核之前使用其他权限测试该应用。

您可以查看review documentation了解详情。