在Flash中,我在构建之后首先调用身份验证,如何避免弹出窗口阻止程序。
public function FacebookProxy(appID:String, permissions:Object) {
this.appID = appID;
this.permissions = permissions;
}
public function authenticate():void {
var response:FacebookAuthResponse = Facebook.getAuthResponse();
if(response && response.uid) {
this.success(response);
} else {
this.init();
}
}
protected function init():void {
Security.loadPolicyFile("https://fbcdn-profile-a.akamaihd.net/crossdomain.xml");
Facebook.init(this.appID, this.initHandler);
}
protected function initHandler(response:FacebookAuthResponse, fail:Object):void {
if(response && response.uid){
this.success(response);
} else {
setTimeout(this.login, 200);
}
}
protected function login():void {
Facebook.login(loginHandler, this.permissions);
}
protected function loginHandler(response:FacebookAuthResponse, fail:Object):void {
if(response && response.uid) {
this.success(response);
} else {
//ExternalInterface.call("trace", "code:" + fail.error.code + ", message:" + fail.error.message + ", type:" + fail.error.type);
}
}
protected function success(response:FacebookAuthResponse):void {
}
答案 0 :(得分:0)
我不知道flash,但你不能自动调用Facebook.init, Facebook.login
,它会被弹出窗口拦截器捕获。
仅在用户活动上触发这两种方法,即点击用户。
答案 1 :(得分:0)
从我记忆中,登录Facebook的最无摩擦的方式(通过游戏应用程序,没有流行和一个权限屏幕)是使用js api登录并将细节传递给flash