【问题标题】:How can I retrieve email via Facebook Graph API v2.8? [duplicate]如何通过 Facebook Graph API v2.8 检索电子邮件? [复制]
【发布时间】:2016-10-27 23:14:46
【问题描述】:

我长期使用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 调用中使用“声明性字段”的有效 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";
  ...
});

【问题讨论】:

  • 好的,链接到副本是公平的。但是我不明白负分,因为我的问题是关于 v2.8 而另一个是关于 v2.4...

标签: facebook facebook-graph-api facebook-javascript-sdk


【解决方案1】:
FB.api('/me', {fields: 'name,email'}, (response) => {
    console.log(response);
});

它被称为“声明性字段”,随 Graph API v2.4 一起提供:https://developers.facebook.com/docs/apps/changelog#v2_4

【讨论】:

  • 我查看了 Facebook 从 v2.2 到 v2.8 的升级指南,但他们没有提到这一点。谢谢!
  • function(response) {(response) => {有什么区别?
猜你喜欢
  • 1970-01-01
  • 2013-06-17
  • 2017-09-29
  • 2011-04-06
  • 1970-01-01
  • 2015-12-19
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多