如何在关闭自动发布时访问Twitter屏幕名称,头像

时间:2014-02-06 13:40:59

标签: twitter meteor

在Meteor中,我相信通常您可以在使用{{services.twitter.screenName}}登录后获取Twitter用户的屏幕名称。

但是,如果关闭自动发布功能,那么唯一似乎可用的是{{currentUser.profile.name}}(它返回“全名”,即Kevin Rose,而不是krose。)

如果已删除自动发布,我将如何从已使用Twitter登录的用户获取屏幕名称或头像?

2 个答案:

答案 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)发布usernameprofileMeteor.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');
});