为什么要将现有的访问令牌传递给Facebook.init()?

时间:2012-07-19 02:59:29

标签: actionscript-3 flash facebook-access-token facebook-actionscript-api

根据其API documentation,Facebook.init()方法允许您传递现有的访问令牌。这对我的项目非常有用,所以我在Facebook上创建了一个测试应用程序,然后按these instructions通过PHP获取用户的oauth_token。完成后,我的PHP脚本使用FlashVars将令牌传递给我的SWF,之后SWF使用现有令牌调用Facebook.init()。

所有这一切都很好(应用程序在Facebook和SWF播放中启动),但它产生我认为是意外的结果:我传递给Facebook.init()的访问令牌与访问不同生成的FacebookAuthResponse对象中的令牌。

这是设计的吗?如果是这样,将现有访问令牌传递给Facebook.init()是什么意思?

1 个答案:

答案 0 :(得分:1)

我会回答我自己的问题,以防它帮助其他人,特别是因为Facebook-ActionScript API变得过时而且很脆弱(即使在Adobe自己的tutorial中调用Facebook.init()也是如此)。

简而言之,我通过PHP验证用户并将访问令牌传递给SWF的方法意味着我的应用程序不需要调用Facebook.init()。实际上,一旦我的SWF开始执行,它就可以使用通过FlashVars传递给它的访问令牌,如下所示:

Facebook.api("/me/friends?access_token=" + accessToken, getFriendsHandler);