Soundcloud API身份验证| NodeWebkit,重定向uri和本地文件系统

时间:2013-09-13 10:20:52

标签: javascript api authentication soundcloud node-webkit

我尝试构建一个使用Soundcloud API的NodeWebkit应用程序 但我已经在连接/登录过程中失败了。

在NodeWebkit中,用户可以将应用程序安装在硬盘上的任何位置 所以redirect_uri永远不会相同。
在网络服务器上托管重定向页面将无法正常工作 {不同协议“file://”和“https://”)

我在这里尝试了API Doku的不同方法 http://developers.soundcloud.com/docs#authentication 但没有结果。

我如何将Soundcloud API与NodewebKit一起使用?

提前致谢。

2 个答案:

答案 0 :(得分:2)

发现NodeWebkit问题后,我看到了这个帖子: https://github.com/rogerwang/node-webkit/issues/542

它描述了NodeWebkit IFrame的一种方式: 我的代码看起来像这样:

var def     = $.Deferred();        
var $iframe = $('<iframe nwfaketop nwdisable></iframe>')
                .attr('src', SoundCloud.ConnectUrl)
                .load(function(e) {

                    var parser      = document.createElement('a');
                        parser.href = this.contentWindow.location.href;

                    var search = parser.search.substr(1, parser.search.length);
                    var result = URLToArray(search);

                    if (result.error !== void 0) {
                        $iframe.remove();
                        def.reject(result.error_description);
                    }

                    if (result.code !== void 0) {
                        SoundCloud.LoginCode = result.code;
                        $iframe.remove();
                        def.resolve();
                    }
                })
                .appendTo($(opts.iframe));

return def;

希望它可以帮助其他人解决同样的问题。

答案 1 :(得分:1)

对于基于文件的解决方案,也许您每次都可以使用节点模块的__dirname __filename变量构建本地redirect_uri。

对于基于Web服务器的解决方案,由于node_remote属性允许您在原始“localhost”或其他内容中调用节点apis,因此您应该能够将soundcloud数据与callback.html opener(也就是您的连接页面)同步)通过节点中的上下文。