2

わかりましたので、ユーザーが 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グラフAPIからコールバックを取得したときに再レンダリングする方法は? 友達をデータベースに保存したくありません(Facebookのおかげですでに利用可能です)

4

1 に答える 1