0

I'm doing a project using Meteor. People can log in with Twitter. I was wondering if there was a way to get someones profile picture from Twitter in the Accounts.onCreateUser. Here's what I have in mine :

Accounts.onCreateUser(function(options, user) {

   var twitterInfo =  user.services.twitter;

   if (options.profile){

        options.profile.createdAt = new Date();//now!
        options.profile.twitterId = twitterInfo.id;
        options.profile.username = twitterInfo.screenName;
        options.profile.name  = options.profile.name;
        user.profile = options.profile; 
   }

    return user;
}); 

Thanks!

4

4 回答 4

6

使用 twitter api 1.0 弃用。接受的答案不再有效。

Meteor.user().services.twitter.profile_image_url 

为我工作。

于 2013-07-05T09:22:55.403 回答
1

我已将 Meteor 包accounts-uiaccounts-twitter添加到我的应用程序中。 http://docs.meteor.com/#accountsui 这些软件包很容易添加 Twitter OAuth 登录功能。

更好的是:我可以从任何地方访问当前用户Meteor.user()。更妙的是,它们是自己的模板。所以我可以 {{services.twitter.screenName}}在我的应用程序中的任何地方使用来获取用户的 Twitter 句柄。 {{services.twitter.profile_image_url}}对于头像图片网址。{{profile.name}}对于 Twitter 用户名。

于 2014-02-02T17:07:58.393 回答
0

当用户使用个人资料图片的 twitter URL 登录时,在用户集合中设置了这些 URL,services.twitter.profile_image_url and services.twitter.profile_image_url_https因此您可以读出这些 URL。

我使用以下行在配置文件对象中设置用户 twitter 个人资料图片,默认情况下对客户端可见:

Meteor.users.update({_id:Meteor.userId()}, {$set {"profile.twitterpic":user.services.twitter.profile_image_url}});
于 2013-05-07T07:51:33.717 回答
0

根据 API ( https://dev.twitter.com/docs/api/1/get/users/profile_image/%3Ascreen_name ) 将其添加到:

options.profile.display_picture="http://api.twitter.com/1/users/profile_image/"+twitterInfo.screenName;

这是传统方式,在 api 1.1 中稍微难一些(https://dev.twitter.com/docs/user-profile-images-and-banners):

您需要获取GET users/show并解析user对象profile_image_url

于 2013-05-06T05:58:11.170 回答