我在我的 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/