Как я могу визуализировать пользовательский интерфейс AccountKit

Вот моя форма, которая находится на моей странице login.php:

    <form id="LoginForm">
    <input value="+1" id="country_code" />
    <input placeholder="phone number" id="phone_number"/>
    <button onclick="smsLogin();">Login via SMS</button>
    </form>

<script src="https://sdk.accountkit.com/en_US/sdk.js"></script>

<script>
  // initialize Account Kit with CSRF protection
  AccountKit_OnInteractive = function(){
    AccountKit.init(
      {
        appId:"{{FACEBOOK_APP_ID}}", 
        state:"{{csrf}}", 
        version:"{{ACCOUNT_KIT_API_VERSION}}",
        fbAppEventsEnabled:true,
        redirect:"{{REDIRECT_URL}}"
      }
    );
  };

  // login callback
  function loginCallback(response) {
    if (response.status === "PARTIALLY_AUTHENTICATED") {
      var code = response.code;
      var csrf = response.state;
      // Send code to server to exchange for access token
    }
    else if (response.status === "NOT_AUTHENTICATED") {
      // handle authentication failure
    }
    else if (response.status === "BAD_PARAMS") {
      // handle bad parameters
    }
  }

  // phone form submission handler
  function smsLogin() {
    var countryCode = document.getElementById("country_code").value;
    var phoneNumber = document.getElementById("phone_number").value;
    AccountKit.login(
      'PHONE', 
      {countryCode: countryCode, phoneNumber: phoneNumber}, // will use default values if not specified
      loginCallback
    );
  }


  // email form submission handler
  function emailLogin() {
    var emailAddress = document.getElementById("email").value;
    AccountKit.login(
      'EMAIL',
      {emailAddress: emailAddress},
      loginCallback
    );
  }
</script>

И вот ожидаемый интерфейс для отправки кода:

AccountKit UI

Проблема, с которой я столкнулся, заключается в том, что пользовательский интерфейс AccountKIt не будет отображен, пользователь должен нажать кнопку «Войти через SMS» ... что мне не интересно, я хочу, чтобы, если пользователь переходит на страницу login.php, пользовательский интерфейс AccountKit должен отображаться автоматически без отображения моего форма.

Я попытался удалить форму и изменил функцию smsLogin (), которая будет немедленно вызываться следующим образом:

 function {
        var countryCode = document.getElementById("country_code").value;
        var phoneNumber = document.getElementById("phone_number").value;
        AccountKit.login(
          'PHONE', 
          {countryCode: countryCode, phoneNumber: phoneNumber}, // will use default values if not specified
          loginCallback
        );
}();

Но я получил сообщение об ошибке:

TypeError: AccountKit.login не является функцией

Мне нужны советы, чтобы понять, как я могу добиться того, чем хочу заниматься.


person aidonsnous    schedule 25.07.2018    source источник


Ответы (1)


Я перенаправляю пользователя прямо на страницу accountkit, когда он посещает мою страницу входа. Ссылка accountkit: https://www.accountkit.com/v1.0/basic/dialog/sms_login/ и имеет параметр, который я передаю phonenumber, country_code, url перенаправления (это моя страница на который будет отправлен пользователю). Так что все работает так, как я хотел.

person aidonsnous    schedule 26.07.2018