如何通过 Facebook Graph API v2.8 检索电子邮件?
How can I retrieve email via Facebook Graph API v2.8?
我用了很长时间的v2.2,一切都很好。
但是由于某种原因我需要升级到 v2.8,并且电子邮件的检索不再有效。
谁能告诉我代码应该是什么样子的?
检索电子邮件地址的工作 v2.2 代码:
FB.api('/me', function(response) {
var fn = ('first_name' in response) ? response.first_name : "null";
var ln = ('last_name' in response) ? response.last_name : "null";
var fid = ('id' in response) ? response.id : "null";
var mail = ('email' in response) ? response.email : "null";
...
});
初始化是这样完成的:
FB.init({
appId : 'myid',
cookie : true,
xfbml : true,
version : 'v2.8'
});
登录(当然也是在 API 调用之前完成)如下所示:
FB.login(function(response) {
if (response.authResponse) {
processLogin(response);
} else {
// user clicked cancel
}
}, {scope: 'public_profile,email'});
解决方案
这是在 API 调用中使用 "declarative fields" 的有效 v2.8 解决方案:
FB.api('/me', {fields: 'first_name,last_name,email,id'}, function(response) {
var fn = ('first_name' in response) ? response.first_name : "null";
var ln = ('last_name' in response) ? response.last_name : "null";
var fid = ('id' in response) ? response.id : "null";
var mail = ('email' in response) ? response.email : "null";
...
});
FB.api('/me', {fields: 'name,email'}, (response) => {
console.log(response);
});
它被称为 "Declarative Fields" 并随 Graph API 的 v2.4 一起提供:https://developers.facebook.com/docs/apps/changelog#v2_4
我用了很长时间的v2.2,一切都很好。 但是由于某种原因我需要升级到 v2.8,并且电子邮件的检索不再有效。 谁能告诉我代码应该是什么样子的?
检索电子邮件地址的工作 v2.2 代码:
FB.api('/me', function(response) {
var fn = ('first_name' in response) ? response.first_name : "null";
var ln = ('last_name' in response) ? response.last_name : "null";
var fid = ('id' in response) ? response.id : "null";
var mail = ('email' in response) ? response.email : "null";
...
});
初始化是这样完成的:
FB.init({
appId : 'myid',
cookie : true,
xfbml : true,
version : 'v2.8'
});
登录(当然也是在 API 调用之前完成)如下所示:
FB.login(function(response) {
if (response.authResponse) {
processLogin(response);
} else {
// user clicked cancel
}
}, {scope: 'public_profile,email'});
解决方案
这是在 API 调用中使用 "declarative fields" 的有效 v2.8 解决方案:
FB.api('/me', {fields: 'first_name,last_name,email,id'}, function(response) {
var fn = ('first_name' in response) ? response.first_name : "null";
var ln = ('last_name' in response) ? response.last_name : "null";
var fid = ('id' in response) ? response.id : "null";
var mail = ('email' in response) ? response.email : "null";
...
});
FB.api('/me', {fields: 'name,email'}, (response) => {
console.log(response);
});
它被称为 "Declarative Fields" 并随 Graph API 的 v2.4 一起提供:https://developers.facebook.com/docs/apps/changelog#v2_4