3

アカウント-UIおよびアカウント-[Github/Twitter / Facebook / Google]パッケージを使用して、外部サービスでログインできるようにします。

私は、例で変更Accounts.ui.configしましたrequestPermissions

Accounts.ui.config({
  requestPermissions: {
    github: ['user'],
    facebook: ['user_photos']
  }
});

しかし、たとえばGithubでログに記録すると、Githubの名前しか取得できません。

他の外部サービスと同じこと。

プロフィール写真のURLなど、より多くの情報を取得するにはどうすればよいですか?

4

1 に答える 1

14

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がID属性を取得するために使用するメソッドに直接プラグインする方法はありません。

于 2012-12-14T00:33:03.597 に答える