#facebook-graph-api #facebook #facebook-javascript-sdk
#facebook-graph-api #Facebook #facebook-javascript-sdk
Вопрос:
у меня вопрос…. я на самом деле разрабатываю приложение facebook с помощью FB javascript SDK. В моем приложении мне нужно разрешение электронной почты для дальнейшей обработки. я использую
FB.Connect.showPermissionDialog(«электронная почта»); но какое-то диалоговое окно не отображается… вот мой код
<script>
appid = '*************';
name = 'Palmchip Test App';
href = 'https://apps.facebook.com/*********/';
FB.init({
appId:appid, cookie:true,
status:true, xfbml:true
});
FB.getLoginStatus(function(response) {
if (response.session) {
alert("You are logged in...");
FB.Connect.showPermissionDialog("email", function(perms) {
if (!perms) {
alert("no access");
} else {
alert("accessed...");
}
});
}
else {
top.location.href='https://graph.facebook.com/oauth/authorize?client_id=' appid 'amp;redirect_uri=' href 'amp;display=page';
}
});
</script>
предупреждение, в котором говорится, что вы вошли в систему…работает нормально, но затем ничего не происходит…..
Ответ №1:
- Вам необходимо перейти на OAuth 2.0
ouath: true
- Вы должны использовать новое диалоговое окно OAuth
- Вы должны знать, что при обновлении
FB.getLoginStatus()
будут возвращены разные объекты:response.authResponse
Комментарии:
1. я попробовал диалоговую ссылку OAuth и даже используя точно такой же код, упомянутый там, я все еще не получаю ответа: ( n после использования примера прямого URL я вижу большой значок Facebook на странице, на которую я нажимаю, а затем меня перенаправляют в диалог разрешений разрешить диалог
Ответ №2:
Попробуйте этот блок кода
FB.init({appId: <?= APP_ID ?>, status: true, cookie: true, xfbml: true, oauth:true});
function getin(){
FB.login(function(response) {
if (response.authResponse) {
var regurl = "/login";
location.href=regurl;
} else {
var regurl = "/logout";
window.location.href=regurl;
}
}, {scope:'email'});
}
Поэтому, когда вы вызываете функцию getin() , если текущий пользователь уже дал вам адрес электронной почты, он ничего не сделает для него, просто перенаправит его на / login url , но если пользователь является новым пользователем, он / она увидит всплывающее окно с запросом адреса электронной почты один разон / она позволяет вам извлекать адрес электронной почты с помощью graph или fql. Ответ BTW внутри FB.login содержит идентификатор пользователя, access_toke и еще некоторые полезные данные, поэтому сохраните их для дальнейшего использования.