gpt4 book ai didi

django-facebookconnect 扩展权限

转载 作者:行者123 更新时间:2023-12-02 06:45:59 25 4
gpt4 key购买 nike

我想向 django-facebookconnect 添加一些扩展权限,即“电子邮件”。查看代码后,我发现实际的连接是在 javascript 中管理的。所以,我认为这样的事情可能会起作用

{% load facebook_tags %}
<script type="text/javascript">
FB_RequireFeatures(["XFBML"], function() {
FB.Facebook.init("{{ facebook_api_key }}", "{% url facebook_xd_receiver %}"{%extended_permissions%});
});

function facebookConnect(loginForm) {
FB.Connect.requireSession();
FB.Facebook.get_sessionState().waitUntilReady(function(){loginForm.submit();});
}
function pushToFacebookFeed(data){
if(data['success']){
var template_data = data['template_data'];
var template_bundle_id = data['template_bundle_id'];
feedTheFacebook(template_data,template_bundle_id,function(){});
} else {
alert(data['errors']);
}
}
function pushToFacebookFeedAndRedirect(data){
if(data['success']){
var template_data = data['template_data'];
var template_bundle_id = data['template_bundle_id'];
feedTheFacebook(template_data,template_bundle_id,function(){window.location.href=template_data['url'];});
} else {
alert(data['errors']);
}
}
function pushToFacebookFeedAndReload(data){
if(data['success']){
var template_data = data['template_data'];
var template_bundle_id = data['template_bundle_id'];
feedTheFacebook(template_data,template_bundle_id,function(){window.location.reload();});
} else {
alert(data['errors']);
}
}
function feedTheFacebook(template_data,template_bundle_id,callback) {
FB.Connect.showFeedDialog(
template_bundle_id,
template_data,
null, null, null,
FB.RequireConnect.promptConnect,
callback
);
}
</script>

这是extend_permissions标签

@register.simple_tag
def extended_permissions():
if hasattr(settings,'FACEBOOK_EXTENDED_PERMISSIONS'):
return """, {permsToRequestOnConnect: "%s"}""" % ','.join(settings.FACEBOOK_EXTENDED_PERMISSIONS)
return ''

理论上我认为上面的代码应该可以工作。实际上它确实有效,只是破坏了弹出窗口的功能。当用户接受来自应用程序的请求时,他们将被重定向(在弹出窗口中)到主页。在编辑之前,弹出窗口将关闭,主浏览器窗口将重定向到/facebook/setup。

如有任何建议,我们将不胜感激

最佳答案

我认为问题可能出在这里:


FB.Facebook.init("{{ facebook_api_key }}", "{% url facebook_xd_receiver %}"{%extended_permissions%});

我打赌应该是


FB.Facebook.init("{{ facebook_api_key }}", "{% url facebook_xd_receiver %}{%extended_permissions%}");

甚至可能


FB.Facebook.init("{{ facebook_api_key }}", "{% url facebook_xd_receiver %}?perms={%extended_permissions%}");

不确定,但我从来不喜欢 js api。如果您仍然遇到问题,请尝试我的 Django oauth 实现:https://github.com/dickeytk/django_facebook_oauth

关于django-facebookconnect 扩展权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com