soundcloud api在oAuth之后解决了问题
soundcloud api resolve issue after oAuth
我希望使用JavaScript:解决Soundcloud API的问题
未经授权,以下代码工作正常:
var group = 'https://soundcloud.com/groups/chilled';
SC.initialize({
client_id: 'MY_CLIENT_ID',
redirect_uri: 'http://localhost:49957/tn/callback.html'
});
// Resolve works fine and gives number ID of group
SC.resolve(group + '?client_id=' + client_id).then(function (g) {
console.log('Group 1: ' + g.id);
});
在我授权用户之后:
SC.connect().then(function () {
return SC.get('/me');
}).then(function (me) {
authUser = me.id
});
// Resolve no longer works and i get 401 unauthorised
SC.resolve(group + '?client_id=' + client_id).then(function (g) {
console.log('Group 1: ' + g.id);
});
有人能帮我理解我做错了什么吗?我似乎找不到任何地方可以效仿的榜样。让我如厕!
非常感谢,
James
对于其他面临同样问题的人,我已经回答了我自己的问题:
首先,我没有正确登录,因为Soundcloud的示例代码在他们的callback.html中出现错误,该代码用于在oAuth客户端登录流后返回网站。在Soundcloud的示例callback.html中,代码为:
<body onload="window.opener.setTimeout(window.opener.SC.connectCallback, 1)">
必须更改为:
<body onload="window.setTimeout(window.opener.SC.connectCallback, 1)">
这允许弹出窗口正确关闭,并在应用程序设置正确配置到同一域(本地主机或生产,但不是两者的混合)的情况下完成登录流程。
除了这个回调,我还添加了以下代码:
var params = getSearchParameters();
window.opener.oAuthToken = params.code;
function getSearchParameters() {
var prmstr = window.location.search.substr(1);
return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
}
function transformToAssocArray(prmstr) {
var params = {};
var prmarr = prmstr.split("&");
for (var i = 0; i < prmarr.length; i++) {
var tmparr = prmarr[i].split("=");
params[tmparr[0]] = tmparr[1];
}
return params;
}
在随后的页面中,我可以将任何数据作为"/me/…"的子资源获取端点,但我过去可以通过公共访问查询的任何内容仍然可以访问。由于我现在可以迭代登录的用户组,我不再需要通过公共资源"/resolve/"来解析组的名称,因此我的问题没有得到解决,而是在我当前的开发中避免了。
相关文章:
- 如何解决Yii中的页面刷新问题
- 简单的ES6承诺问题-交换解决和拒绝参数
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- jQuery通过步骤的自排队循环来解决延迟问题
- 当服务器从 http 更改为 https 时,有哪些可能的方法可以解决问题
- 如何使用共享按钮将所有内容对齐到一行来解决问题
- 使用 unity,我的 js 文件无法解决问题
- 缺少 iframe ie8.相对定位不能解决问题
- 如何删除给定字符串中的 CRLF 以解决问题
- 为什么 标记将空格替换为 %2520?如何解决问题
- 使用javascript使用算法解决问题
- 请解决问题在我的AJAX脚本的联系形式
- Angular Js ->UI -路由->解决问题
- 运动:rna转录.正在努力解决问题
- JQuery addClass不透明度函数淡入图像-解决问题
- 如何通过程序解决问题
- JavaScript Promise在解决问题时陷入困境
- Chrome文件夹上传API.检测支持&使用JS/JQuery解决问题
- Angular js :$q解决问题
- 由于Node的异步特性,需要帮助解决问题