Предоставить метод обратного вызова Typescript для кнопки входа Facebook - PullRequest
0 голосов
/ 02 июня 2019

Я интегрирую логин Facebook в свое приложение Angular7, используя Typescript.Используя плагин Facebook Button Login, я могу войти, но не могу правильно указать метод обратного вызова для атрибута data-onlogin кнопки.

У меня есть функция машинописи, определенная в том же компоненте, что и кнопка входа, но кнопка не реагирует на нее.

Примечание: я также использую facebook-js-Определения типа SDK

login.component.html

<div 
  class="fb-login-button" 
  data-width="" 
  data-size="large" 
  data-button-type="login_with" 
  data-auto-logout-link="false"
  sdata-use-continue-as="false"
  data-onLogin="checkLoginStatus()"
>
</div>

login.component.ts

import { Component, OnInit } from '@angular/core';

// The Facebook Javascript SDK
declare var FB: any;

@Component({
    selector: 'app-login',
    templateUrl: './login.component.html',
    styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
    constructor() { }

    ngOnInit() {

    }

    checkLoginStatus() {
        FB.checkLoginStatus((result) => {
            console.log(result);
        });
    }
}

index.html

<body>
    <script>
        window.fbAsyncInit = function () {
            FB.init({
                appId: '{app-id}',
                autoLogAppEvents: true,
                xfbml: true,
                version: 'v3.3'
            });
        };
    </script>

    <script async defer src="https://connect.facebook.net/en_US/sdk.js"></script>

    <app-root></app-root>

</body>

ZoneJS выдает ошибку в консоли с:

Uncaught ReferenceError: checkLoginStatus не определено

1 Ответ

0 голосов
/ 03 июня 2019

Вы предоставили возвращаемое значение функции checkLoginStatus (которая является недействительной) для вашего атрибута data-onLogin. Вместо этого вы должны предоставить саму функцию. Итак, измени

data-onLogin="checkLoginStatus()"

до

data-onLogin="checkLoginStatus"
...