Facebook Meteor使用外部服务登录:如何获取个人资料信息?

Facebook Meteor使用外部服务登录:如何获取个人资料信息?,facebook,meteor,github,twitter,login,Facebook,Meteor,Github,Twitter,Login,我使用Accounts UI和Accounts-[Github/Twitter/Facebook/Google]软件包,允许使用外部服务登录 我使用requestPermissions修改了Accounts.ui.config,示例: Accounts.ui.config({ requestPermissions: { github: ['user'], facebook: ['user_photos'] } }); 但是当我使用Github登录时(例如),我只得到我的

我使用Accounts UI和Accounts-[Github/Twitter/Facebook/Google]软件包,允许使用外部服务登录

我使用
requestPermissions
修改了
Accounts.ui.config
,示例:

Accounts.ui.config({
  requestPermissions: {
    github: ['user'],
    facebook: ['user_photos']
  }
});
但是当我使用Github登录时(例如),我只得到我的Github的名称

其他外部服务也是如此


如何获取更多信息,如配置文件图片的url?

您可以使用Accounts.onCreateUser(fn)方法自定义创建用户时存储的内容。以下是一些示例代码:

Accounts.onCreateUser(function (options, user) {
  var accessToken = user.services.github.accessToken,
      result,
      profile;

  result = Meteor.http.get("https://api.github.com/user", {
    params: {
      access_token: accessToken
    }
  });

  if (result.error)
    throw result.error;

  profile = _.pick(result.data,
    "login",
    "name",
    "avatar_url",
    "url",
    "company",
    "blog",
    "location",
    "email",
    "bio",
    "html_url");

  user.profile = profile;

  return user;
});

您必须在回调函数中对服务进行额外调用,以获取任何其他属性。目前,据我所知,没有办法直接插入Meteor用来获取身份属性的方法。

哇,这真的很有帮助,谢谢你,伙计。但是我想知道你是如何找到“user.services.github.accessToken”的东西的?我只是查看了创建的mongo文档。我不认为这是有文档记录的。另外,我在这里做了一个屏幕广播:这太好了,你会不会碰巧也知道Twitter会是什么样子?到目前为止,我一直试图把船靠岸,但没有用。(甚至有我自己的问题)