Как использовать вход через Facebook в приложении Meteor

Я пытаюсь создать собственный логин только с помощью Facebook и ищу только две конечные точки: «имя» и «аватар».

Для начала я не знаю, является ли «аватар» реальным именем конечной точки, но это то, к чему я пытаюсь получить доступ.

Я создал тестовое приложение на FB, а также установил все необходимые мне пакеты Meteor, так что задел сделан.

I've create the following template:
<template name="Login">
    <h2>Login</h2>
    {{#if currentUser}}
        {{currentUser.services.facebook.name}}
        {{currentUser.services.facebook.avatar}}
        <button id="logout">Logout</button>
    {{else}}
        <button id="facebook-login" class="btn btn-default">Login with Facebook</button>
    {{/if}}
</template>

а затем в каталоге SERVERS я создал файл .js для хранения моих ключей API.

Мои вопросы:

Мой первый вопрос: где найти имена этих конечных точек, так как я просматривал всю документацию на FB и нигде не упоминается «имя» или «аватар», поэтому первое, что мне нужно понять, это где найти эти конечные точки, как я не удалось найти даже "имя".

Второй вопрос заключается в том, что API показывает объекты JSON, и обычно именно так вы подключаете свои конечные точки, но в Meteor, поскольку все это абстрагировано, неясно, где существует этот объект «facebook», чтобы затем более подробно изучить вложенные свойства, такие как «имя» и « аватар» (что опять же я не уверен, правильное ли это имя для этого свойства). Я предполагаю, что, поскольку я использую Meteor, достаточно вызвать такую ​​конечную точку {{currentUser.services.facebook.name}}, правильно ли я об этом думаю?

Последний вопрос: нужно ли мне вызывать эти конечные точки внутри моего шаблона следующим образом:

{{#if currentUser}}
        {{currentUser.services.facebook.name}}
        {{currentUser.services.facebook.gender}}
        <button id="logout">Logout</button>
    {{else}}
        <button id="facebook-login" class="btn btn-default">Login with Facebook</button>
    {{/if}}

Тогда, даже если я оберну свое имя и пол в facebook в свои собственные div, например:

{{#if currentUser}}
        <div class="name">
            {{currentUser.services.facebook.name}}
        </div>
        <div class="avatar">
            {{currentUser.services.facebook.avatar}}
        </div>
        <button id="logout">Logout</button>
    {{else}}
        <button id="facebook-login" class="btn btn-default">Login with Facebook</button>
    {{/if}}

Это все еще не делает для меня очень очевидным, как переместить его, скажем, в заголовок?

Другими словами, как мне заставить пользователя входить в систему из основной части страницы, но после входа в систему имя пользователя и аватар отображаются в заголовке?

Для меня нет очевидного способа сделать это.

Что мне не хватает? Как мне перетасовать DOM, чтобы переместить элементы div .name и .avatar в заголовок, когда я только что вошел в систему через тело страницы?

Имеет ли это смысл?

Я подозреваю, что мне придется создать еще один шаблон в заголовке, который вызывает эти значения?

Кто-нибудь играет с этим, что может дать некоторое представление?

Спасибо.


person MARS    schedule 29.06.2015    source источник
comment
Вы задаете два разных вопроса. Вы всегда должны разделять свои вопросы, чтобы люди могли оказать вам конкретную помощь. В этом случае вы спрашиваете, как получить изображение профиля facebook, а затем спрашиваете, как отобразить его в шаблоне.   -  person thatgibbyguy    schedule 29.06.2015
comment
@thatgibbyguy, ты прав, и это хороший момент. Обычно я пытаюсь, я думаю, мне потребовалась минута, чтобы выбросить это из головы, но, как правило, я должен отделять вопросы. Спасибо за ответ ниже кстати.   -  person MARS    schedule 30.06.2015


Ответы (1)


Ответ на первую часть вашего вопроса здесь:

https://stackoverflow.com/a/15019052/1327678

Ответ на вторую часть вашего вопроса находится в документах. Вы можете сделать помощник шаблона, чтобы проверить это:

Template.header.helpers({
    currentUser: function(){
        if(Meteor.user()){
            return true;
        }
        else{
            return false;
        }
    }
});

И в вашем шаблоне просто напишите:

{{#if currentUser}}
    {{!-- your facebook code here --}}
{{/if}}
person thatgibbyguy    schedule 29.06.2015