使用助手METEOR-JS调用Facebook照片

时间:2015-03-02 23:42:58

标签: javascript facebook meteor

我正在尝试使用Meteor中的以下内容来调用facebook个人资料照片。

Template.foo.helpers({
    avatar: function() {
        if (Meteor.user().services.facebook) {
        return "http://graph.facebook.com/" + Meteor    .user().services.facebook.id + "/picture/?type=large"; 
        }
        else
        {
            return "img/blank_avatar.png"
        }
    }
});

我打电话给

<img src = "{{avatar}}">

在我的浏览器控制台中,我收到错误消息

  

模板助手中的例外:头像

我真的不明白这是什么问题...

1 个答案:

答案 0 :(得分:0)

让我们在server side方法上将Facebook逻辑更改为onCreateUser

//server
    Accounts.onCreateUser(function(options, user) {
       if(user.services.facebook) {
          user.profile = options.profile; 
          user.profile.picture = "http://graph.facebook.com/" + user.services.facebook.id + "/picture/?type=large";
       }else if(options.profile){
          user.profile = options.profile;
       }
    return user
});

如果某个用户使用Facebook services登录,则profile.picture字段将为我们提供带有Facebook照片的url

现在在客户端

<强> JS

    //client
    Template.foo.helpers({
      showProfile:function(){
        if(Meteor.user().profile){
          return userProfile.picture;
        }else{
         return "img/blank_avatar.png"
        }
      }
    })
}

<强> HTML

    {{#if currentUser}}
        <img src="{{showProfile}}" class='fbPic'>
      {{/if}

<强> CSS

.fbPic {
  border-right: 1.5px solid;
  padding-right: 8px;
  padding-bottom: 4px;
  padding-top: 4px;
}