facebook-actionscript-api不再工作了吗?

时间:2015-01-26 03:12:59

标签: javascript facebook actionscript-3 flash air

我开发了一个带有adobe flash和air运行时的windows桌面软件。它作为控制台在我们的本地计算机上运行我使用了facebook-actionscript-api,以便用户在自己的Facebook墙上发布图像。它曾经运作良好。

直到不久前,我发现该功能不再起作用, 当我调用api时,它会打开一个弹出窗口并显示错误代码,如下所示:

{
   "error": {
     "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
     "type": "OAuthException",
     "code": 191
   }
}

似乎facebook已经改变了诸如调用URL之类的内容。 然而,最新的adi“GraphAPI_Desktop_1_8_1.swc”似乎无法正常工作。

有没有解决方案?

我也在寻找在Adobe Air桌面上进行javascript调用的方法,以便我可以调用本机facebook js api。到目前为止我还没有找到它。 (可能因为我的编码技巧不够好)

此致 韦斯利

1 个答案:

答案 0 :(得分:0)

一个。  我遇到了同样的问题,并且能够克服它。错误191表示您在尝试登录时使用了错误的回调URI。问题来自facebook-actionscript-api库。如果您下载该库的源代码,您会发现它使用了一些预定义的回调URI(请参阅api / com / facebook / graph / core / FacebookURLDefaults.as中的LOGIN_SUCCESS_URL,LOGIN_SUCCESS_SECUREURL,LOGIN_FAIL_URL,LOGIN_FAIL_SECUREURL)。我认为这些是很久以前使用的旧的弃用网址:)。目前,您必须为每个Facebook应用程序设置正确的回调URI,并将该URI作为登录请求参数传递,在这种情况下,您可以看到库为您传递了错误的URL。所以我的第一步是在库中更改这些URI(用正确的URL替换它们)。在我的情况下,我只是硬编码。我知道这不是一个好主意,并且可以更好地添加以编程方式设置URL的可能性,但坦白说我根本就没有时间。

之后您会发现登录对话框加载正常,但无法从回调URL参数中获取访问令牌。这里的原因实际上是Facebook改变了Callback URL参数格式。旧版本是

http://your_callback.com?access_token=bla-bla-bla

并且新版本添加了#after?看起来像是:

http://your_callback.com?#access_token=bla-bla-bla. 

有一个'getURLVariables()'函数(请参阅desktopAPI / com / facebook / graph / windows / AbstractWindow.as),用于从URL获取参数。所以我只是在该函数中添加了一个'if'条件(作为第一个!):

if (html.location.indexOf('?#') != -1) {
  params = html.location.slice(html.location.indexOf('?#')+2);
} else if ... (old code goes after my condition here)

这些更改足以让登录流程对我有用。我不知道这是否能解决你所有的问题(比如在墙上发布一些内容),但这可能是让它发挥作用的第一步。

注意:我根本不是ActionScript开发人员,可能我的方法错了所以我会对该解决方案发表任何评论。

B中。  至于你关于使用原生JavaScript Facebook库的第二个想法。我认为这个想法来自那篇文章(http://www.adobe.com/devnet/games/articles/getting-started-with-facebooksdk-actionscript3.html)。问题是你必须使用ExternalInterface在JavaScript和ActionScript之间进行“桥接”。在我的情况下(桌面AIR应用程序),这是不可能的,因为在这种情况下不支持ExternalInterface。你可以检查:

if (ExternalInterface.availabe) {...}

希望可以帮助某人...

相关问题