2012-04-10 58 views
0

我正在尝试使用webworks框架工作为blackberry手机实施SoundCloud应用程序。使用webworks为黑莓实施oAuth2时重定向的问题

我使用OAuth2方案进行授权。到目前为止,我可以从用户可以允许应用程序的位置显示SoundCloud登录页面。但问题发生在重定向期间,这基本上是由SoundCloud完成的。回调URI指向的重定向页面位于我的设备中,但在用户批准该应用程序后,我得到一个页面显示“出错了”。但是,当我尝试从第三个服务器反弹重定向时,它只能正常工作。在这种情况下,我指定了指向网站上的页面的回叫URL,该页面只将请求转发到驻留在我的设备上的页面。但问题是,我不想使用这个“反弹服务器”

请你看看代码,并建议如果我做错了什么。

/** 
* Authenticates the app against soundcloud 
* This javascript method is called in the index.htm of my application. 
*/ 
authenticate : function(){ 
    var url = "https://soundcloud.com/connect?" + "scope=nonexpiring&client_id=MY_CLIENT_ID&" + 
       "response_type=code&redirect_uri=local:///testpage.htm"; 
    window.location = url; 
; 

/************************************/ 

testpage.htm只显示 “Hello声云”。

任何有关这方面的帮助将不胜感激。

+0

我不确定,但有'local:///'协议可能是其中的一部分。我对webworks不太了解,但是可以尝试使用本地主机地址并查看它是如何发生的? – nickf 2012-04-11 09:51:01

+0

nickF -----我已经用localhost试过了,但那不起作用。之所以我写本地:///是因为在黑莓中,webworks应用程序的资源默认存储在这个位置,所以我的reidrect页面应该放在我的手机的“local:///myfile.htm”处。 – Roomioroid 2012-04-11 10:10:58

回答

0

的问题是在你的REDIRECT_URI三重斜线部分。虽然它是根据RFC 3986的有效URI,但在解析这些值时,Ruby URI库的行为有点奇怪。我们正在修复。

在此期间,您可以尝试使用本地:/testpage.htm吗?

+0

我试图用本地:/testpage.htm ...仍然没有运气 – Roomioroid 2012-04-11 11:11:26

+0

顺便说一句,我发现了另一个问题,你们可能想看看。如果在soundcloud网站上的应用设置中指定的重定向网址中存在下划线标志,则不会保存该网址,而会存储空字段。 – Roomioroid 2012-04-11 11:38:34

+0

现在问题已解决重定向....谢谢 – Roomioroid 2012-04-23 13:52:29