我认为这是因为 Facebook 刚刚对他们的登录过程进行了一些更改。
几天前,我的 air 应用程序正在使用facebook-actionscript-api中的 FacebookDesktop 类。今天我打开这个项目,发现 Facebook 登录屏幕与我开始构建应用程序时有些不同。在我输入我的用户 ID 和密码后,我授予应用程序访问我的公开个人资料、朋友列表和照片的权限。然后出现另一个屏幕,我授予该应用代表我向我的朋友发帖的权限。
然后窗口关闭,我得到“OAuthException 2500 必须使用活动访问令牌来查询有关当前用户的信息。”
当我通过浏览器登录 Facebook 时,我看到我的应用程序显示在“您的应用程序”下,但我无法通过我的应用程序登录并执行任何操作。
我在 OSX Lion 上使用带有 GraphAPI_Desktop_1_8_1.swc 的 Adobe Flash。
这是我的代码:
public function MyApp(){
FacebookDesktop.init(APP_ID, onInit);
}
protected function onInit(result:Object, fail:Object):void {
if (result) {
trace("onInit, Logged In\n");
} else {
trace("onInit, Not Logged In\n");
var permissions:Array = ["publish_stream", "user_photos"];
FacebookDesktop.login(onLogin, permissions);
}
}
protected function onLogin(result:Object, fail:Object):void {
if (result) {
trace("Logged In as:");
trace(FacebookDesktop.getSession().user.name);
} else {
trace("Login Failed");
trace('code: '+fail.error.code); //code: 2500
trace('message: '+fail.error.message); //message: An active access token must be used to query information about the current user.
trace('type: '+fail.error.type); //type: OAuthException
}
}
当我使用 SDK 中提供的 FlashDesktopExample(当然是用我的应用程序 ID 修改)时,我得到了相同的结果。
任何帮助都会很棒!提前致谢!