python - Django-Allauth Facebook 集成 - 请求单独发布到用户墙上的权限

标签 python django facebook django-allauth

我在我的 Django 应用程序中使用 django-allauth。

每个用户都可以选择将他/她的 Facebook 帐户连接到他们现有的帐户。 我能够通过添加 allauth 的连接进程来做到这一点。

<a href='{% provider_login_url "facebook" process="connect" %}'>
   Connect with Facebook
</a>

在这一点上,我不想请求允许发布到用户的墙上。

#settings.py

SOCIALACCOUNT_PROVIDERS = {
    'facebook': {
        'SCOPE': ['email'],
        'METHOD': 'js_sdk'
    }
}

一切顺利,用户可以连接 Facebook 帐户。

但是,有没有办法请求允许单独在用户的墙上发帖?我不想请求上面的 publish_actions 权限。

我如何使用 django-allauth 做到这一点?

如何单独请求 publish_actions 权限?这可以使用 django-allauth 完成吗?因为我猜这需要在 settings.py 中为“facebook”SOCIALACCOUNT_PROVIDERS 重新声明“SCOPE”。

提前致谢

最佳答案

我终于解决了。事实证明,django allauth 将设置保存为 DOM 元素 #allauth-facebook-settings 中的 JSON。您只需修改此 json 并传递给 allauth facebook init 函数。当用户点击启用需要“publish_actions”权限的功能时,我调用一个 Javascript 函数:

function modify_permissions() {
    var json = JSON.parse($("#allauth-facebook-settings").html());
    json["loginOptions"]["scope"] = "email, publish_actions";
    allauth.facebook.init(json);
}

现在,如果您尝试从该页面连接 FB 帐户,django allauth 也会请求“publish_actions”权限。

关于python - Django-Allauth Facebook 集成 - 请求单独发布到用户墙上的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27213945/

相关文章:

python - 如何用 '_' 屏蔽 python 中字符串的一部分

python - 如何阻止 python RuntimeWarning 打印到终端?

python - 给定 x 和 y 值时旋转的密度网格图 (Python)

python - 将 QWidget 转换为 QOpenGLWidget

Facebook:如何从 url 获取对象 ID

Facebook Messenger API : Send Structured Message

javascript - 在 Django 模板中使用 javascript 重定向尝试 - 产生无效的 url

python - Django:对象不可迭代

django - 无法为API设置“DEFAULT_AUTHENTICATION_CLASSES”导入“oauth2_provider.ext.rest_framework.OAuth2Authentication”

javascript - 如何在我的 iframe 加载时向我的页面添加加载指示器?