我设置了一个Facebook标签,要求获得用户电子邮件的许可 - 这样可以正常使用,但出现的对话框显示' Appname想要访问您的公开个人资料,朋友列表和电子邮件。地址'
这会降低应用的参与度 - 我不想要公开个人资料或朋友列表。
代码如下,假appId:
var useremail;
window.fbAsyncInit = function() {
FB.init({
appId: '01234567890',
cookie: true,
xfbml: true,
oauth: true
});
FB.login(function(response) {
if (response.authResponse) {
FB.api('/me', function(response) {
useremail=response.email;
//Do stuff
});
} else {
//No access
}
},{scope: 'email'});
};
(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);
}());
即使我删除了电子邮件范围请求,它仍然声称我是在用户的公开个人资料和朋友列表之后。之前没有遇到此问题,它曾用于显示友好的可自定义对话框,您可以在应用>设置>权限区域中预览。
我无法找到可能导致此问题的任何其他设置。任何想法,提前谢谢......
答案 0 :(得分:3)
我将此标记为已回答,问题已在http://www.insidefacebook.com/2012/12/12/how-changes-to-facebooks-app-auth-process-affect-developers/
中介绍简而言之,在通过Javascript SDK登录时显示的权限对话框中,Facebook已将“基本信息”重命名为“公开个人资料和朋友列表”。
我们正在恢复在Facebook比赛中手动填写的电子邮件字段,这可能会导致更多的参与,而不是被迫在访客面孔中发出这样一个不祥的声音对话,并让人们正确地说'不,谢谢'
答案 1 :(得分:0)
你看到
了吗?FB.api('/me', function(response) {
行?替换/我/电子邮件,这应该工作。
我是通过Graph API得到的。