【问题标题】:Meteor - IF is a facebook user then display somethingMeteor - 如果是 facebook 用户然后显示一些东西
【发布时间】:2015-09-15 10:19:57
【问题描述】:

好吧,我不知道这是否可能,但我想要一些类似的东西 {{#if currentUser}} 呜呜呜 {{/如果}} 但只有脸书。这是一个自定义的 facebook cmets(我不喜欢官方的)

【问题讨论】:

    标签: facebook meteor meteor-accounts


    【解决方案1】:

    当您存储使用 Facebook 登录的用户时,您的用户集合会获得一个名为 services 的字段。以下是我处理图像的方式:

    serviceImageUser = function () {
    
        var user= Meteor.user();
    
        if(!user)
            return;
    
        if (user.services)
        {
            if (user.services.facebook)
                return user.services.facebook.picture;
            if (user.services.twitter)
                return user.services.twitter.profile_image_url;
            if (user.services.google)
                return user.services.google.picture;
            if (user.services.instagram)
                return user.services.instagram.profile_picture;
        }
        else
        {
            return user.profile.userProfile.picture;
        }
    };
    

    您需要添加 2 个软件包才能使 Facebook 登录功能正常工作。

    meteor add accounts-facebook
    meteor add service-configuration
    

    accounts-facebook 插件支持 facebook 登录,服务配置允许存储我们 Facebook 应用程序 ID 的设置。

    至于模板:

    <template name="name">
        {{#if currentUser}}
            {{currentUser.services.facebook.picture}}
        {{/if}}
    </template>
    

    【讨论】:

    • 谢谢!现在我的 cmets 的头像看起来很棒
    【解决方案2】:

    最简单的方法是从用户连接的服务集合中发布一个字段,并检查该字段在客户端上是否可用。

    // overpublish the default user publication with an excerpt
    // of its facebook connected service
    Meteor.publish("currentUserFacebookName", function(){
      return Meteor.users.find(this.userId, {
        fields: {
          // let's publish the name, but could be something else
          "services.facebook.name": 1
        }
      });
    });
    

    然后在客户端就可以写对应的helper了:

    Meteor.subscribe("currentUserFacebookName");
    
    Template.registerHelper("currentFacebookUser", function(){
      return Meteor.users.findOne({
        "services.facebook.name": {
          $exists: true
        }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2017-10-14
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多