Chrome 管理應用程式 / Extension Details API 的程式碼範例
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
前往
Chrome Management App Details API
,瞭解 API 功能總覽。
下列所有要求都會使用下列變數:
$TOKEN
- OAuth 2 權杖
$CUSTOMER
- 客戶 ID 或常值 my_customer
取得 Chrome 應用程式 / 擴充功能的詳細資料
如要查看特定 Chrome 應用程式的詳細資料,請使用
/apps/chrome/{app_id}@{app_version}
端點。
要求
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps/chrome/abcdefghijklmnopqrstuvwxyzabcdef@1.2.3"
回應
{
"name": "customers/<customer>/apps/chrome/abcdefghijklmnopqrstuvwxyzabcdef@1.2.3",
"displayName": "Sample Google Chrome Extension",
"description": "A sample Google Chrome extension.",
"revisionId": "1.2.3",
"type": "CHROME",
"iconUri": "https://sample.chrome.extension.google.com/icon.png",
"detailUri": "https://chrome.google.com/webstore/detail/abcdefghijklmnopqrstuvwxyzabcdef",
"firstPublishTime": "2010-10-10T10:10:10.123456Z",
"latestPublishTime": "2020-10-10T10:10:10.123456Z",
"publisher": "sample.com",
"homepageUri": "http://sample.chrome.extension.google.com/home",
"reviewNumber": "10000",
"reviewRating": 4.5,
"chromeAppInfo": {
"supportEnabled": false,
"minUserCount": 6000000,
"permissions": [
{
"type": "content_security_policy",
"documentationUri": "https://developer.chrome.com/extensions/contentSecurityPolicy",
"accessUserData": false
},
{
"type": "contextmenus",
"documentationUri": "https://developer.chrome.com/extensions/contextMenus",
"accessUserData": false
},
],
"siteAccess": [
{
"hostMatch": "<all_urls>"
}
],
"isTheme": false,
"googleOwned": true,
"isCwsHosted": true
}
}
取得 Android 應用程式的詳細資料
如要查看特定 Android 應用程式的詳細資料,請使用
/apps/android/{app_id}@{app_version}
端點。
要求
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps/android/com.google.android.sample@1.2.3"
回應
{
"name": "customers/<customer>/apps/android/com.google.android.sample@1.2.3",
"displayName": "Sample Android App",
"description": "A sample Android app.",
"appId": "com.google.android.sample",
"revisionId": "1.2.3",
"type": "ANDROID",
"iconUri": "https://sample.android.app.google.com/icon.png",
"detailUri": "https://play.google.com/store/apps/details?id=com.google.android.sample",
"firstPublishTime": "2010-10-10T10:10:10.123456Z",
"latestPublishTime": "2020-10-10T10:10:10.123456Z",
"publisher": "Google LLC",
"isPaidApp": true,
"homepageUri": "http://sample.android.app.google.com/home",
"privacyPolicyUri": "http://sample.android.app.google.com/privacy",
"reviewNumber": "10000",
"reviewRating": 4.5,
"androidAppInfo": {
"permissions": [
{
"type": "android.permission.CAMERA"
},
]
}
}
取得漸進式網頁應用程式的詳細資料
如要查看特定 Prgoressive Web 應用程式的詳細資料,請使用
/apps/web/{app_id}
端點。
請注意,應用程式 ID 是網址編碼的應用程式首頁。
要求
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps/web/http%3A%2F%2Fsample.web.app.google.com%2F"
回應
{
"name": "customers/<customer>/apps/web/http%3A%2F%sample.web.app.google.com%2F",
"displayName": "sample.web.app.google.com",
"description": "A sample Progressive Web App.",
"appId": "http://sample.web.app.google.com/",
"type": "WEB",
"iconUri": "http://sample.web.app.google.com/icon.png"
}
列出要求的 Chrome 擴充功能
如要列出要求的 Chrome 應用程式,請使用
/apps:countChromeAppRequests
端點。
要求
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps:countChromeAppRequests"
回應
{
"requestedApps": [
{
"appId": "abcdefghijklmnopqrstuvwxyzabcdef",
"displayName": "Sample Google Chrome Extension",
"appDetails": "customers/<customer>/apps/chrome/abcdefghijklmnopqrstuvwxyzabcdef",
"iconUri": "https://sample.chrome.extension.google.com/icon.png",
"detailUri": "https://chrome.google.com/webstore/detail/abcdefghijklmnopqrstuvwxyzabcdef",
"requestCount": "1",
"latestRequestTime": "2020-10-10T10:10:10.123456Z"
},
],
"totalSize": 1
}
處理擴充功能要求
如要針對使用者的應用程式要求採取適當行動,您必須使用 Chrome Policy API。按照設定指南操作 API 存取權。然後,您可以向該 API 發出要求以執行各種操作。如需提出應用程式相關要求的範例,請參閱這裡。以下舉例說明您可以對應用程式要求採取的常見動作。
核准機構單位使用者/裝置手動安裝的擴充功能要求
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"app_id": "chrome:abcdefghijklmnopqrstuvwxyzabcdef"}
},
policyValue: {
policySchema: "chrome.users.apps.InstallType",
value: {appInstallType: "ALLOWED"}
},
updateMask: {paths: "appInstallType"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
成功的回應應留空:
{}
拒絕為機構單位中的所有使用者/裝置提出擴充功能要求
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"app_id": "chrome:abcdefghijklmnopqrstuvwxyzabcdef"}
},
policyValue: {
policySchema: "chrome.users.apps.InstallType",
value: {appInstallType: "BLOCKED"}
},
updateMask: {paths: "appInstallType"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
成功的回應應留空:
{}
為機構單位中的所有使用者/裝置強制安裝擴充功能
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"app_id": "chrome:abcdefghijklmnopqrstuvwxyzabcdef"}
},
policyValue: {
policySchema: "chrome.users.apps.InstallType",
value: {appInstallType: "FORCED"}
},
updateMask: {paths: "appInstallType"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
成功的回應應留空:
{}
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-25 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-25 (世界標準時間)。"],[[["\u003cp\u003eThis documentation outlines how to use the Chrome Management APIs to retrieve details for Chrome apps, Android apps, and Progressive Web Apps.\u003c/p\u003e\n"],["\u003cp\u003eYou can fetch app details like name, description, permissions, and publisher information using specific endpoints and an OAuth 2 token.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation also explains how to list requested Chrome extensions and their associated request counts.\u003c/p\u003e\n"],["\u003cp\u003eFinally, it provides guidance on how to use the Chrome Policy API to approve, deny, or force-install extension requests for specific organizational units.\u003c/p\u003e\n"]]],[],null,["# Code Samples for the Chrome Management App / Extension Details API\n\nVisit\n[Chrome Management App Details API](/chrome/management/guides/app_details_api)\nfor an overview of API features.\n\nAll the requests shown below use the following variables:\n\n- `$TOKEN` - OAuth 2 token\n- `$CUSTOMER` - ID of the customer or literal `my_customer`\n\nGet details for a Chrome app / extension\n----------------------------------------\n\nTo view details about a specific Chrome app, use the\n`/apps/chrome/{app_id}@{app_version}` endpoint.\n\n#### Request\n\n curl -X GET \\\n -H \"Authorization: Bearer $TOKEN\" \\\n \"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps/chrome/abcdefghijklmnopqrstuvwxyzabcdef@1.2.3\"\n\n#### Response\n\n {\n \"name\": \"customers/\u003ccustomer\u003e/apps/chrome/abcdefghijklmnopqrstuvwxyzabcdef@1.2.3\",\n \"displayName\": \"Sample Google Chrome Extension\",\n \"description\": \"A sample Google Chrome extension.\",\n \"revisionId\": \"1.2.3\",\n \"type\": \"CHROME\",\n \"iconUri\": \"https://sample.chrome.extension.google.com/icon.png\",\n \"detailUri\": \"https://chrome.google.com/webstore/detail/abcdefghijklmnopqrstuvwxyzabcdef\",\n \"firstPublishTime\": \"2010-10-10T10:10:10.123456Z\",\n \"latestPublishTime\": \"2020-10-10T10:10:10.123456Z\",\n \"publisher\": \"sample.com\",\n \"homepageUri\": \"http://sample.chrome.extension.google.com/home\",\n \"reviewNumber\": \"10000\",\n \"reviewRating\": 4.5,\n \"chromeAppInfo\": {\n \"supportEnabled\": false,\n \"minUserCount\": 6000000,\n \"permissions\": [\n {\n \"type\": \"content_security_policy\",\n \"documentationUri\": \"https://developer.chrome.com/extensions/contentSecurityPolicy\",\n \"accessUserData\": false\n },\n {\n \"type\": \"contextmenus\",\n \"documentationUri\": \"https://developer.chrome.com/extensions/contextMenus\",\n \"accessUserData\": false\n },\n ],\n \"siteAccess\": [\n {\n \"hostMatch\": \"\u003call_urls\u003e\"\n }\n ],\n \"isTheme\": false,\n \"googleOwned\": true,\n \"isCwsHosted\": true\n }\n }\n\nGet details for an Android app\n------------------------------\n\nTo view details about a specific Android app, use the\n`/apps/android/{app_id}@{app_version}` endpoint.\n\n#### Request\n\n curl -X GET \\\n -H \"Authorization: Bearer $TOKEN\" \\\n \"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps/android/com.google.android.sample@1.2.3\"\n\n#### Response\n\n {\n \"name\": \"customers/\u003ccustomer\u003e/apps/android/com.google.android.sample@1.2.3\",\n \"displayName\": \"Sample Android App\",\n \"description\": \"A sample Android app.\",\n \"appId\": \"com.google.android.sample\",\n \"revisionId\": \"1.2.3\",\n \"type\": \"ANDROID\",\n \"iconUri\": \"https://sample.android.app.google.com/icon.png\",\n \"detailUri\": \"https://play.google.com/store/apps/details?id=com.google.android.sample\",\n \"firstPublishTime\": \"2010-10-10T10:10:10.123456Z\",\n \"latestPublishTime\": \"2020-10-10T10:10:10.123456Z\",\n \"publisher\": \"Google LLC\",\n \"isPaidApp\": true,\n \"homepageUri\": \"http://sample.android.app.google.com/home\",\n \"privacyPolicyUri\": \"http://sample.android.app.google.com/privacy\",\n \"reviewNumber\": \"10000\",\n \"reviewRating\": 4.5,\n \"androidAppInfo\": {\n \"permissions\": [\n {\n \"type\": \"android.permission.CAMERA\"\n },\n ]\n }\n }\n\nGet details for a Progressive Web App\n-------------------------------------\n\nTo view details about a specific Prgoressive Web App, use the\n`/apps/web/{app_id}` endpoint.\nNote that the app id is the URL-encoded app home page.\n\n#### Request\n\n curl -X GET \\\n -H \"Authorization: Bearer $TOKEN\" \\\n \"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps/web/http%3A%2F%2Fsample.web.app.google.com%2F\"\n\n#### Response\n\n {\n \"name\": \"customers/\u003ccustomer\u003e/apps/web/http%3A%2F%sample.web.app.google.com%2F\",\n \"displayName\": \"sample.web.app.google.com\",\n \"description\": \"A sample Progressive Web App.\",\n \"appId\": \"http://sample.web.app.google.com/\",\n \"type\": \"WEB\",\n \"iconUri\": \"http://sample.web.app.google.com/icon.png\"\n }\n\nList requested Chrome extensions\n--------------------------------\n\nTo list requested Chrome apps, use the\n`/apps:countChromeAppRequests` endpoint.\n\n#### Request\n\n curl -X GET \\\n -H \"Authorization: Bearer $TOKEN\" \\\n \"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/apps:countChromeAppRequests\"\n\n#### Response\n\n {\n \"requestedApps\": [\n {\n \"appId\": \"abcdefghijklmnopqrstuvwxyzabcdef\",\n \"displayName\": \"Sample Google Chrome Extension\",\n \"appDetails\": \"customers/\u003ccustomer\u003e/apps/chrome/abcdefghijklmnopqrstuvwxyzabcdef\",\n \"iconUri\": \"https://sample.chrome.extension.google.com/icon.png\",\n \"detailUri\": \"https://chrome.google.com/webstore/detail/abcdefghijklmnopqrstuvwxyzabcdef\",\n \"requestCount\": \"1\",\n \"latestRequestTime\": \"2020-10-10T10:10:10.123456Z\"\n },\n ],\n \"totalSize\": 1\n }\n\n### Taking action on extension requests\n\nTo take an appropriate action on app requests from end users, you will need to use the [Chrome Policy API](/chrome/policy). Follow the [setup guide](/chrome/policy/guides/setup) to get access to the API. Then you will be able to make requests to that API to take various actions. Samples for making app related requests can be found [here](/chrome/policy/guides/app_samples_policyapi). The following are examples of common actions you can take on an app request.\n\n#### Approve extension request for manual install by the user/devices under an OU\n\n curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer $TOKEN\" \\\n -d '{\n requests: [{\n policyTargetKey: {\n targetResource: \"orgunits/04fatzly4jbjho9\",\n additionalTargetKeys: {\"app_id\": \"chrome:abcdefghijklmnopqrstuvwxyzabcdef\"}\n },\n policyValue: {\n policySchema: \"chrome.users.apps.InstallType\",\n value: {appInstallType: \"ALLOWED\"}\n },\n updateMask: {paths: \"appInstallType\"}\n }]\n }' \\\n \"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify\"\n\nA successful response should be empty: \n\n {}\n\n#### Deny extension request for all users/devices under an OU\n\n curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer $TOKEN\" \\\n -d '{\n requests: [{\n policyTargetKey: {\n targetResource: \"orgunits/04fatzly4jbjho9\",\n additionalTargetKeys: {\"app_id\": \"chrome:abcdefghijklmnopqrstuvwxyzabcdef\"}\n },\n policyValue: {\n policySchema: \"chrome.users.apps.InstallType\",\n value: {appInstallType: \"BLOCKED\"}\n },\n updateMask: {paths: \"appInstallType\"}\n }]\n }' \\\n \"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify\"\n\nA successful response should be empty: \n\n {}\n\n#### Force install extension for all users/devices under an OU\n\n curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer $TOKEN\" \\\n -d '{\n requests: [{\n policyTargetKey: {\n targetResource: \"orgunits/04fatzly4jbjho9\",\n additionalTargetKeys: {\"app_id\": \"chrome:abcdefghijklmnopqrstuvwxyzabcdef\"}\n },\n policyValue: {\n policySchema: \"chrome.users.apps.InstallType\",\n value: {appInstallType: \"FORCED\"}\n },\n updateMask: {paths: \"appInstallType\"}\n }]\n }' \\\n \"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify\"\n\nA successful response should be empty: \n\n {}"]]