离线FB帐户套件登录短信

时间:2016-12-08 08:44:39

标签: angularjs facebook ionic-framework

我使用FB帐户套件,按钮点击时出现错误:未初始化AccountKit SDK。首先调用AccountKit.init 。我知道当我在浏览器中测试时,当我来到同一页面并刷新并点击按钮时它没有错误地工作。或者也许有人可以通过FB帐户套件帮助我使用代码:

.controller('RegistrationCtrl', function($scope, $http,  $ionicPopup) {

   AccountKit_OnInteractive = function(){
      AccountKit.init(
              {
                appId:mycode,
                state:"{{csrf}}",
                version:"v1.0"
              }
            );
             console.log("{{csrf}}")

          };

      $scope.loginWithSMS = function() {

      AccountKit.login("PHONE",{}, loginCallback);



    function loginCallback(response) {
            console.log(response);
            if (response.status === "PARTIALLY_AUTHENTICATED") {
              document.getElementById("code").value = response.code;
              document.getElementById("csrf_nonce").value = response.state;
              document.getElementById("my_form").submit();
            }
            else if (response.status === "NOT_AUTHENTICATED") {

            }
            else if (response.status === "BAD_PARAMS") {

            }

          }

    }
    $scope.submit = function(){
        $scope.data = {};
        $http.post(app4travel.apiUrl + '/register_mobile')
          .success(function(response, status, headers, config) {
            console.warn('Sent')
            console.warn(response)
            console.warn(status)
            $scope.response = response.data;
        })
    }

})

2 个答案:

答案 0 :(得分:0)

首先,在FB的文档中:

CSRF保护:上面的{{csrf}}占位符应替换为应该来自应用程序服务器的不可猜测值,并传递给登录流程。它将保持不变地返回给应用程序客户端,并且应用程序客户端可以将其传递回服务器以验证与原始值的匹配。

其次:检查原因:未调用AccountKit.init。

答案 1 :(得分:0)

解决了问题,我刚刚在index.html(main)中调用了Account Kit.init函数,它可以工作。

<script type="text/javascript">
      AccountKit_OnInteractive = function(){
      AccountKit.init(
              {
                appId:id,
                state:"{{csrf}}",
                version:"v1.1"
              }
            );
             console.log("{{csrf}}")

          };

    </script>