在Meteor中,我相信通常您可以在使用{{services.twitter.screenName}}
登录后获取Twitter用户的屏幕名称。
但是,如果关闭自动发布功能,那么唯一似乎可用的是{{currentUser.profile.name}}
(它返回“全名”,即Kevin Rose
,而不是krose
。)
如果已删除自动发布,我将如何从已使用Twitter登录的用户获取屏幕名称或头像?
答案 0 :(得分:4)
您只需要在服务器上设置发布记录,以确定您要发送给客户端的信息,然后在客户端启动功能(或更好的是,铁路由器)中订阅它
Meteor.publish("userData", function () {
return Meteor.users.find({_id: this.userId},
{fields: {'services.twitter': 1}});
});
除了自动提供的字段之外,一旦客户订阅了Meteor.user()
,这将为"userData"
中的登录用户提供服务字段。
答案 1 :(得分:2)
您需要手动发布/订阅您的数据。默认情况下,仅为emails
集合(see the docs)发布username
,profile
和Meteor.users
字段。所以你需要发布其他人:
Meteor.publish('userData', function() {
if(!this.userId) return null;
return Meteor.users.find(this.userId, {fields: {
services: 1,
...
}});
});
之后,在客户端订阅此频道:
Deps.autorun(function() {
Meteor.subscribe('userData');
});