你怎么在Meteor上获得Twitter个人资料图片?

时间:2013-05-06 00:44:53

标签: twitter meteor

我正在使用Meteor进行一个项目。人们可以使用Twitter登录。我想知道是否有办法在Accounts.onCreateUser中从Twitter获取某人个人资料图片。这就是我的想法:

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;
}); 

谢谢!

4 个答案:

答案 0 :(得分:6)

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

Meteor.user().services.twitter.profile_image_url 

为我工作。

答案 1 :(得分:1)

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

更好的是:我可以从任何地方通过Meteor.user()访问当前用户。 甚至更好,他们来自他们自己的模板。所以我可以使用 我的应用中的{{services.twitter.screenName}}位置可以让用户获得Twitter处理。 {av}图片网址为{{services.twitter.profile_image_url}}。和 {{profile.name}}用于Twitter用户名。

答案 2 :(得分: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个对象

答案 3 :(得分:0)

当用户使用Twitter URL登录时,个人资料图片正在services.twitter.profile_image_url and services.twitter.profile_image_url_https的用户集合中进行设置,因此您只需读取这些网址即可。

我使用以下行在配置文件对象中设置用户twitter配置文件pic,默认情况下客户端可以看到:

Meteor.users.update({_id:Meteor.userId()}, {$set {"profile.twitterpic":user.services.twitter.profile_image_url}});