我在Spotify上注册了我的应用。我确保将URI添加到我的注册应用程序中。但是每次我运行这段代码时,我都会遇到同样的错误。我也在后台运行这个,所以我知道不是这样。我做错了什么?
我也尝试用/spotify
切换/provider_cb
。
var client_id = '<my_client_id>';
var redirectUri = chrome.identity.getRedirectURL() + "/spotify";
chrome.identity.launchWebAuthFlow({
"url": "https://accounts.spotify.com/authorize?client_id="+client_id+
"&redirect_uri="+ encodeURIComponent(redirectUri) +
"&response_type=token",
'interactive': true,
},
function(redirect_url) {
console.log(redirect_url);
});
以下是我的权限:
"permissions": [
"http://*/*", "tabs", "webNavigation", "activeTab", "storage", "identity",
"declarativeContent", "https://accounts.spotify.com/*",
"https://accounts.spotify.com/authorize/*"
]
我第一次在重新启动Chrome后运行我的应用程序时,登录页面弹出就像一切正常,但在我登录后仍然会出现同样的错误:
identity.launchWebAuthFlow: Authorization page could not be loaded.
答案 0 :(得分:6)
var redirectUri = chrome.identity.getRedirectURL() + "/spotify";
应该是
var redirectUri = chrome.identity.getRedirectURL() + "spotify";
getRedirectUrl将返回一个末尾带有/的网址。因此您的原始代码导致:
"https://<app_id>.chromiumapp.org//spotify"
答案 1 :(得分:0)
getRedirectURL
方法的路径有一个重载,因此您不需要添加字符串。
var redirectUri = chrome.identity.getRedirectURL('spotify')