デスクトップおよびモバイルプラットフォームで実行することになっているAIRアプリケーションを開発しています。ほとんどのFacebook機能では、Flash用の公式GraphAPIバージョン1.8.1を使用しています。
アプリを使用するには、ユーザーはFacebookにログインする必要があります。これは、最初にFacebookMobile.init()を呼び出すことで簡単に機能します。ユーザーがログインしていないことが報告された場合は、次のようにログインします。
var webView :StageWebView = new StageWebView();
webView.stage = stage;
webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
FacebookMobile.login(handleLoginResult, stage, new Array(), webView);
これらはすべて非常にうまく機能しますが、ログアウトは期待どおりに機能しません。呼び出し
FacebookMobile.logout(handleLogout);
Facebookからユーザーをログアウトするようですが、handleLogoutには常に最初のパラメーターとしてtrueが渡されます。このログアウト後、FacebookMobile.init()が呼び出されると、ユーザーがログインしていないことも正しく報告されます。そのため、上から再度login()メソッドを呼び出します。
次に、WebViewは開きますが、すぐに閉じます。Facebookのログイン画面を表示せずに、ログアウトしたばかりのユーザーに自動的にログインします。しかし、電子メールとパスワードを入力することで、別のユーザーにログインできるようにしたいと思います。
おそらく、アプリケーションの起動時にログアウトが発生することを述べておかなければなりません。ユーザーは自分でログアウトできません。アプリケーションは起動時にログアウトするため、ユーザーは毎回強制的にログインする必要があります。はい、これには理由があります;)
これはある種のキャッシュの問題だと確信していますが、Flash / AIRでどのように解決できますか?