好的,所以当用户使用 Facebook 登录时,我正在使用 Facebook API 图,我正在获取用户朋友列表 + 朋友图片,如下所示:
Template.user_loggedout.events({
"click #fb": function (e, tmp) {
Meteor.loginWithFacebook({
requestPermissions: ['user_likes',
'friends_about_me',
'user_birthday',
'email',
'user_location',
'user_work_history',
'read_friendlists',
'friends_groups',
'user_groups']
}, function (err) {
if (err) {
console.log("error when login with facebook " + err);
} else {
FB.api('/' + Meteor.user().services.facebook.id + '/friends', { fields: 'name,picture' }, function (response) {
if (response && response.data) {
friends = response.data
}
})
}
});
}
正如预期的那样,我得到了朋友数组里面有对象(表示为朋友)。在某些时候,当用户单击链接时,我想向用户显示他的朋友列表。所以我得到了这个html:
Template.add_friends.helpers({
friends_list: friends
});
template name="add_friends">
<div class="friends_Page">
{{#each friends_list}}
<li>{{name}}</li>
{{/each}}
</div>
</template>
问题是朋友对象在应用程序启动后以及当用户使用 facebook 单击登录按钮时得到更新。那么当我从 facebook graph api 获得回调时如何重新渲染?我不想将朋友存储在数据库中(感谢 facebook,它已经可用)