我正在尝试使用Azure DevOps中的Chrome Web Store API上传和发布我的Chrome扩展程序。我一直在参考官方的Google guide,但问题是现在看起来已经过时了。我在步骤上失败了
要创建客户端ID和客户端密钥,请单击“创建新客户端ID”,选择“已安装的应用程序”,然后在“已安装的应用程序类型”下选择“其他”。
[执行此操作时,在“应用程序类型”下拉列表中看不到“其他”选项。
我尝试了以下操作:
使用此链接,我无法获得访问代码:
[https://accounts.google.com/o/oauth2/auth?response_type=code&scope=https://www.googleapis.com/auth/chromewebstore&client_id= $ CLIENT_ID&redirect_uri = urn:ietf:wg:oauth:2.0:oob
导致出现“错误400:redirect_uri_mismatch”。如果我在客户端ID设置中添加了授权的重定向URI(例如“ localhost”),并在上面的URL中替换了“ urn:ietf:wg:oauth:2.0:oob”,则可以调用授权过程并获取URL中的代码。但是,当我尝试向https://accounts.google.com/o/oauth2/token发出卷曲请求以获取刷新令牌时,我没有收到refresh令牌,我只会得到此:
{
"access_token": "",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/chromewebstore",
"token_type": "Bearer"
}
这里与上一次尝试几乎一样,只是我不必在请求访问代码中替换重定向URI,但是我也没有此应用程序类型的Client Secret,因此我将其省略。无论如何,它会导致没有刷新令牌的相同响应。
显然,我确实需要具有访问令牌才能与Chrome Web Store API一起使用,但是没有刷新令牌,我需要手动授权权限,这是不可接受的,因为我需要在CI / CD管道中使用它。看来Google删除了仅针对此类应用程序类型生成此信息的选项。
所以,问题是,如何获得刷新令牌以真正能够连续部署chrome扩展?
好,所以这里的技巧是在用于获取访问代码(不是令牌)的请求中添加两个参数:
&access_type = offline&approval_prompt = force
因此链接应该是:
[https://accounts.google.com/o/oauth2/auth?response_type=code&scope=https://www.googleapis.com/auth/chromewebstore&client_id= $ CLIENT_ID&redirect_uri = urn:ietf:wg:oauth:2.0:oob&access_type = offline&approval_prompt = force
Google应该在更新文档方面做得更好。