声云 API 认证 |NodeWebkit,重定向URI和本地文件系统

Soundcloud API Authentication | NodeWebkit, redirect uri and local file system

本文关键字:URI 文件系统 重定向 API 认证 NodeWebkit 声云      更新时间:2023-09-26

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

在NodeWebkit中,用户可以将应用程序安装在其硬盘驱动器
上的任何位置这样redirect_uri就不一样了。
并且在网络服务器上托管重定向页面将不起作用。
{不同的协议"file://"和"https://")

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

我如何将 Soundcloud API 与 NodewebKit 结合使用?

提前谢谢。

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

它描述了使用NodeWebkit IFrames的一种方式:我的代码如下所示:

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;

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

对于基于文件的解决方案,也许每次都可以使用节点模块的__dirname __filename变量构造一个局部redirect_uri。

对于基于 Web 服务器的解决方案,由于node_remote属性允许您在源"localhost"或其他任何内容中调用节点 API,因此您应该能够通过 node 中的上下文将 soundcloud 数据与回调.html打开器(也称为您的连接页面)同步。