Facebook fb:如果没有显示面,登录按钮将无法工作
我们今天刚刚切换到新的PHPSDK和JS。但问题很奇怪。当我们不使用带有perms属性的showfaces时,它不会显示弹出窗口。只有这样才能获得权限弹出窗口出现,我们需要使用显示面属性 这是虫子吗Facebook fb:如果没有显示面,登录按钮将无法工作,facebook,facebook-javascript-sdk,facebook-php-sdk,Facebook,Facebook Javascript Sdk,Facebook Php Sdk,我们今天刚刚切换到新的PHPSDK和JS。但问题很奇怪。当我们不使用带有perms属性的showfaces时,它不会显示弹出窗口。只有这样才能获得权限弹出窗口出现,我们需要使用显示面属性 这是虫子吗 <fb:login-button perms="email, publish_stream, offline_access, create_event, user_photos, user_online_presence, user_videos, user_website, user_eve
<fb:login-button perms="email, publish_stream, offline_access, create_event, user_photos, user_online_presence, user_videos, user_website, user_events, user_relationships, user_interests" size="large">Sign Up With Facebook</fb:login-button>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $facebook->getAppID() ?>',
cookie: true,
xfbml: true,
oauth: true
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
注册Facebook
window.fbAsyninit=函数(){
FB.init({
appId:“”,
曲奇:是的,
xfbml:是的,
真的吗
});
FB.Event.subscribe('auth.login',函数(响应){
window.location.reload();
});
FB.Event.subscribe('auth.logout',函数(响应){
window.location.reload();
});
};
(功能(){
var e=document.createElement('script');e.async=true;
e、 src=document.location.protocol+
“//connect.facebook.net/en_US/all.js”;
document.getElementById('fb-root').appendChild(e);
}());
谢谢
编辑:
天哪。我刚刚找到了解决方案,有了新的JSSDK,我们必须使用scope而不是perms属性 或者,您可以使用纯Javascript并制作自己的按钮
<script>
function addPermissions(permissions){
FB.login(function(response) {
if (response.session) {
if (response.perms) {
// user is logged in and granted some permissions.
} else {
// user is logged in, but did not grant any permissions
}
} else {
// user is not logged in
}
}, {perms:permissions});
}
</script>
<a onclick="addPermissions("email, publish_stream,...");">Click me</a>
函数addPermissions(权限){
FB.登录(功能(响应){
if(response.session){
if(response.perms){
//用户已登录并被授予某些权限。
}否则{
//用户已登录,但未授予任何权限
}
}否则{
//用户未登录
}
},{perms:permissions});
}
点击我
对于新的JS SDK,我们必须使用scope而不是perms属性 他并不是在要求一个替代的解决方案:)是的,我知道这个替代方案,但我不想那样使用,thx Thox Though我想我已经被XFBML烧坏了太多,以至于无法接近它。Javascript在我使用过的情况下更可靠。出于好奇,尝试更少的权限,看看会发生什么。比如:perms=“read\u stream”
尝试过,我只使用了1个权限,但没有正确工作。如果FB.init中的oauth参数设置为true,则必须使用scope参数而不是perms。