yoz*_*hik 3 air facebook actionscript-3 facebook-graph-api
我正在使用Flash builder 4.5,AIR 2.6,Facebook动作脚本3 API为Android制作移动AIR应用程序的最新版本.
我有登录/注销的问题.我只能登录一次 - 然后我的数据以某种方式缓存,Facebook会自动登录.当我调用logout时,我收到响应TRUE,但我没有真正从系统注销.我没有出现标准登录对话框.我已经在官方网站上阅读了很多关于stackoverflow和open问题的文章,但是没有一篇文章有用.我怎么解决这个问题?这是我使用的代码:
package
{
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.external.ExternalInterface;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.system.Capabilities;
import flash.system.Security;
import flash.display.Loader;
import com.facebook.graph.FacebookMobile;
public class TestProj extends Sprite
{
public function TestProj()
{
super();
//register to add to stage
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
// support autoOrients
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
}
private function onAddedToStage(event:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
FacebookMobile.init("195053007196177", initCallback);
}
private function initCallback(success:Object, fail:Object):void
{
var appPermissions:Array = new Array("read_stream", "offline_access", "publish_stream", "read_friendlists");
FacebookMobile.login(loginCallback, this.stage, appPermissions);
//FacebookMobile.logout(logoutCallback);
}
private function loginCallback(success:Object, fail:Object):void
{
//And here I always receive success with my UserID
//and login dialog don't appears to me before this
if (success)
{
trace("login ok");
}
else
trace("login failed");
}
private function logoutCallback(success:Object):void
{
//here I reseive "TRUE" always!!
trace(success);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您只是将logoutCallback的第一个参数传递给logout方法.如果您添加为您的应用指定的网站网址的第二个参数,则应将其清除为该窗口的html Cookie.另外,设置FacebookMobile.manageSession = false;
FacebookMobile.logout(logoutCallback, "http://your_app_origin_url");
Run Code Online (Sandbox Code Playgroud)
有一个潜在的相关错误,涉及桌面和移动设备无法以相同的方式访问或清除访问令牌.为此,有一个hack描述了在FacebookMobile中暴露访问令牌,然后用访问令牌手动调用"注销"方法.这里描述了该问题,包括一个名为"reallyLogout"的方法.如果我上面写的不起作用,请实现"reallyLogout".
当您注销时,您的应用会清除本地会话,但不会将您从系统中注销.注销文档中明确定义了这一点.想想看,如果你在智能手机,网络浏览器和现在的移动桌面应用程序上登录Facebook,突然你注销了...它不应该在任何地方,只是在浏览器会话中注销你.所以传递第二个参数.
| 归档时间: |
|
| 查看次数: |
5540 次 |
| 最近记录: |