Google api 无法获取Chrome Web应用商店API的刷新令牌以发布Chrome扩展

Google api 无法获取Chrome Web应用商店API的刷新令牌以发布Chrome扩展,google-api,google-oauth,Google Api,Google Oauth,我正在尝试使用Azure DevOps中的Chrome Web Store API上载和发布我的Chrome扩展。我一直在引用官方的谷歌,但问题是它看起来已经过时了。我在这一步上失败了 要创建客户机ID和客户机机密,请单击创建新客户机ID,选择已安装的应用程序和其他已安装的应用程序类型 当我这样做时,在应用程序类型下拉列表中看不到“其他”选项。 我尝试了以下方法: 选择Web应用程序作为应用程序类型 使用此链接,我无法获得访问代码: $CLIENT\u ID&redirect\u uri=ur

我正在尝试使用Azure DevOps中的Chrome Web Store API上载和发布我的Chrome扩展。我一直在引用官方的谷歌,但问题是它看起来已经过时了。我在这一步上失败了

要创建客户机ID和客户机机密,请单击创建新客户机ID,选择已安装的应用程序和其他已安装的应用程序类型

当我这样做时,在应用程序类型下拉列表中看不到“其他”选项。

我尝试了以下方法:

  • 选择Web应用程序作为应用程序类型
  • 使用此链接,我无法获得访问代码:

    $CLIENT\u ID&redirect\u uri=urn:ietf:wg:oauth:2.0:oob

    这将导致“错误400:重定向uri不匹配”。如果我在客户端ID设置中添加一个授权重定向URI,比如“localhost”,并用它替换上面URL中的“urn:ietf:wg:oauth:2.0:oob”,我就能够调用授权过程并从URL获取代码。但是,当我尝试发出curl请求以获取刷新令牌时,我没有收到刷新令牌,我只得到以下结果:

    {
      "access_token": "",
      "expires_in": 3599,
      "scope": "https://www.googleapis.com/auth/chromewebstore",
      "token_type": "Bearer"
    }
    
  • 选择Chrome应用程序作为应用程序类型
  • 这里发生的情况与前面的尝试几乎相同,只是我不必用请求中的重定向URI替换访问代码,但是我也没有这个应用程序类型的客户机机密,所以我省略了它。无论如何,它会产生与没有刷新令牌相同的响应

  • 当我在开发控制台中启用Chrome Web Store API并尝试创建新凭据时,它建议创建API密钥而不是Cliend ID。但看起来这个API实际上无法与这个密钥一起工作,我尝试将它作为查询参数发送,作为头,并且我总是得到401结果,并显示“需要登录”消息。但是,当我尝试发送一个头中带有(无效)令牌的请求时,我得到了有意义的响应(类似于smth的无效凭据)
  • 显然,我确实需要有访问令牌才能使用Chrome Web Store API,但如果没有刷新令牌,我需要手动授权我的权限,这是不可接受的,因为我需要在我的CI/CD管道中使用。谷歌似乎删除了仅为此类应用程序类型生成此信息的选项


    所以,问题是,我如何才能让刷新令牌真正能够持续部署chrome扩展?

    好的,这里的技巧是在请求中添加两个参数,用于获取访问代码(而不是令牌):

    &访问\类型=脱机和批准\提示=强制

    因此,链接应该是:

    $CLIENT\u ID&redirect\u uri=urn:ietf:wg:oauth:2.0:oob&access\u type=offline&approval\u prompt=force


    谷歌应该在更新他们的文档方面做得更好。

    好的,所以这里的技巧是在请求中添加两个参数,用于获取访问代码(而不是令牌):

    &访问\类型=脱机和批准\提示=强制

    因此,链接应该是:

    $CLIENT\u ID&redirect\u uri=urn:ietf:wg:oauth:2.0:oob&access\u type=offline&approval\u prompt=force


    谷歌应该在更新他们的文档方面做得更好。

    Life saver!要么谷歌的更新破坏了某些东西,要么他们的文档需要更新。救命!要么谷歌的更新破坏了某些东西,要么他们的文档需要更新。