我使用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;
})
}
})
答案 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>