Я пишу флеш-приложение в AS3. Я использую библиотеку com.facebook.graph, чтобы получить логин из моего приложения для работы.
Если пользователь не вошел в Facebook, появится всплывающее окно с просьбой ввести имя пользователя и пароль, как и должно быть. однако проблема в том, что он, похоже, не возвращается к функции обратного вызова.
Код JS, используемый для подключения, выглядит следующим образом:
function redirect() {
var params = window.location.toString().slice(window.location.toString().indexOf('?'));
top.location = 'https://graph.facebook.com/oauth/authorize?client_id=myappID&scope=publish_stream&redirect_uri=http://mydomain.com.au/play.php?'+params;
}
и код AS выглядит следующим образом:
Facebook.init('myappID', handleLogin);
function onLoginButtonClicked(event:MouseEvent):void
{
if (Facebook.getSession()==null ||
Facebook.getSession().uid == null)
{
Facebook.login(handleLogin);
}
else{
handleLogin();
}
}
function handleLogin(response:Object, fail:Object):void
{
if (response == null)
{
ExternalInterface.call('redirect');
return;
}
postToFB();
}
function handleUploadComplete(response:Object, fail:Object):void {
//call back from posting
}
function postToFB() {
messageText.text = 'done';
}
Если пользователь уже вошел в систему, то он правильно выполняет функцию posttoFB, однако, если это не так, и он проходит процедуру входа в систему, он не выполняет функцию. Кажется, он просто не запускает функцию обратного вызова после завершения процесса входа.
Что мне здесь не хватает?