【问题标题】:Chrome Extension OAUTH with Spotify API带有 Spotify API 的 Chrome 扩展 OAUTH
【发布时间】:2016-11-12 20:28:14
【问题描述】:

我一直在使用 Spotify API 编写一个 chrome 扩展程序,并且刚刚到了需要 OAUTH 来完成它的部分。

我一直在查看 spotify 誓言页面 (https://developer.spotify.com/web-api/authorization-guide/)

它说您只需进行 GET 调用,它就会将您带到登录页面,但是当我实现它时,它什么也不做。我觉得我错过了一些代码,但我不确定我错过了什么。

 var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    // Just alerting it to see what it came up with
    alert(xhr.responseText);
  } 
} 
xhr.open("GET", "https://accounts.spotify.com/authorize/?client_id=<clientID>&response_type=code&redirect_uri=https%3A%2F%2Fwww.google.com%2F", true);
 xhr.send();

这就是我现在拥有的代码(填写了客户端 ID),运行它什么也不做。 (我现在指定http://www.google.com/ 作为我的回调)

【问题讨论】:

  • 1.上面的代码在哪里?内容脚本或背景页面? 2、你有没有在manifest.json声明对应的主机权限?
  • 是的,我设置了权限。并且代码在内容脚本中

标签: javascript html google-chrome google-chrome-extension oauth


【解决方案1】:

XHR 请求在任何情况下都不会打开页面

运行此代码应该会返回页面内容,但您对它什么也不做 - 肯定不会正确显示它以供用户交互。

一般来说,您似乎需要阅读更多有关 OAuth 的信息。也就是说:

Chrome 扩展 API 为此提供了一个特定工具:chrome.identity.launchWebAuthFlow()。它将负责向用户显示身份验证页面并将令牌传回给您。您需要为其使用特定的“虚拟”URL - 有关更多详细信息,请参阅chrome.identity documentation。另请注意,此 API 不能在内容脚本中使用,您需要将其委托给后台页面。

【讨论】:

  • 感谢您的帮助,但仍然遇到问题。跟随另一个 SO 问题(您也巧合地回答了)stackoverflow.com/questions/30612138/…,当我调用脚本时没有任何反应。如果我将它设置为每次单击上下文菜单上的选项时运行,则什么也不会发生。
  • 实际上我已经解决了这个问题,但是如何从中获取 OAUTH 令牌?不知道如何从那里进行 API 调用
猜你喜欢
  • 2014-10-02
  • 1970-01-01
  • 2013-06-18
  • 2022-01-11
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多