问题 是否可以自动更新chrome网上商店发布的Chrome扩展程序?


文档对此非常不清楚。我知道,如果您自己托管您的扩展程序,可以通过更新版本号来自动更新您的扩展程序。但是,我不知道的是,如果您仍然可以在发布到Chrome网上商店的同时进行自托管。

我无法相信Google会让您通过网络界面手动更新您的扩展程序。


11671
2017-10-30 13:04


起源



答案:


现在有一种方法可以以编程方式更新CWS中托管的扩展(从那时起 2014年3月) 通过使用 Webstore API

注册API并通过OAuth 2.0授权后,即可 推动更新 对于现有项目:

curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-X PUT \
-T $FILE_NAME \
-v \
https://www.googleapis.com/upload/chromewebstore/v1.1/items/$APP_ID

文件不清楚这是否会产生草案;任何状况之下, 出版也是可能的 通过API。

请注意,它仍将受到自动审核检查,因此实际更新仅在完成后(通常在一小时内)才可用。


4
2017-11-05 10:28



如果有人可以尝试并确认更新方法是自动发布更新,还是将其视为草稿,那将是很好的。 - Xan
使用Service API时如何获取令牌? - Rias
@Rias见 本指南。您需要在Developers Console中创建一个项目,并为其启用API以获取API密钥。 - Xan
@Xan - 可以使用API​​自动发布更新。我使用API​​自动发布我推送到我的扩展仓库的主分支的扩展。请参阅中的utils /目录 github.com/robertknight/passcards 用于脚本。 - Robert Knight


答案:


现在有一种方法可以以编程方式更新CWS中托管的扩展(从那时起 2014年3月) 通过使用 Webstore API

注册API并通过OAuth 2.0授权后,即可 推动更新 对于现有项目:

curl \
-H "Authorization: Bearer $TOKEN"  \
-H "x-goog-api-version: 2" \
-X PUT \
-T $FILE_NAME \
-v \
https://www.googleapis.com/upload/chromewebstore/v1.1/items/$APP_ID

文件不清楚这是否会产生草案;任何状况之下, 出版也是可能的 通过API。

请注意,它仍将受到自动审核检查,因此实际更新仅在完成后(通常在一小时内)才可用。


4
2017-11-05 10:28



如果有人可以尝试并确认更新方法是自动发布更新,还是将其视为草稿,那将是很好的。 - Xan
使用Service API时如何获取令牌? - Rias
@Rias见 本指南。您需要在Developers Console中创建一个项目,并为其启用API以获取API密钥。 - Xan
@Xan - 可以使用API​​自动发布更新。我使用API​​自动发布我推送到我的扩展仓库的主分支的扩展。请参阅中的utils /目录 github.com/robertknight/passcards 用于脚本。 - Robert Knight


当您发布到Chrome网上应用店(CWS)时,CWS会托管您的分机并且您无法控制 update_url 属性 manifest.json (它被CWS特定链接所覆盖)。当您决定使用CWS托管扩展的新版本时,只需将其(具有更高版本号)上传到CWS(通过 开发人员仪表板)。之后,您只需等待Chrome自动更新功能即可完成所有工作。

每个Chrome在后台执行并且没有用户直接许可,在CWS(或其他地方,如果扩展程序是自托管的)执行例行检查,确保所有扩展都是最新的。如果任何扩展程序(或应用程序)的新版本可用,Chrome会执行自动更新(如果 扩展的权限没有增加)。


8
2017-10-30 13:47



好吧,这就是我所担心的。这完全是荒谬的,我习惯于在一整天内部署新的代码 git push 而现在我将不得不手动完成这一切。也许我可以尝试使用phantomJS脚本 - stanm87
Chrome扩展程序的持续部署?听起来很酷!我也喜欢 phantomJS 理念。祝你好运! - Konrad Dzwinel
不幸的是,上传脚本是如此复杂(由于缩小而难以提及逆向工程)我无法使用phantomJS。 - stanm87
而不是尝试对缩小的脚本进行反向工程,您可以使用类似BurpSuite的东西并跟踪HTTP消息。然后,您可以使用PhantomJS轻松复制这些内容。 - Christian M. Raymonds