我正在使用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;
});
谢谢!
答案 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}});