您可以使用 Google 雲端硬碟 Labels API,套用一組更新要求,產生新的草稿修訂版本,藉此更新單一標籤。舉例來說,您可以更新現有標籤 Properties (基本標籤說明),也可以在標籤中新增 Field。
標籤更新會以批次更新的形式運作,因為這個方法會採用更新
Request
物件清單。系統會按照批次要求中指定的順序更新。批次更新中的更新會以不可分割的形式套用。也就是說,如果批次中的任何要求失敗,整個更新作業就會失敗,且系統不會套用任何 (可能相依的) 變更。標籤維持不變。
如果更新成功,您必須先發布產生的草稿修訂版本,才能將變更套用至任何 Google 雲端硬碟項目。
更新標籤物件
標籤包含許多其他可更新的物件類型,例如:
- 標籤:
Properties Field物件和欄位類型- 「選取」
Choice和「選取選項」Properties
這些是控制標籤外觀和運作方式的眾多物件之一。
作業類別
labels 資源的 delta 方法支援下列作業,可概略分成以下類別:
| 類別 | 說明 |
|---|---|
| 建立 | 新增物件。 |
| 更新 | 更新物件的特定屬性。 |
| 啟用 | 啟用物件。 |
| 停用 | 停用物件。 |
| 刪除 | 移除物件。 |
下一節會使用這些類別,說明特定作業的行為。
更新要求
delta 方法會採用一或多個 Request 物件,每個物件都會指定要執行的單一要求類型。要求種類繁多,以下是按不同類別分組的要求類型細目。
欄位遮罩
許多「更新」和「停用」類型的要求需要FieldMask。
這是以半形逗號分隔的欄位清單,您要更新這些欄位,其他欄位則維持不變。遮罩為必填欄位,確保系統只會更新您要編輯的欄位。您必須至少指定一個欄位。
範例
如要更新標籤,請使用 labels 資源的 delta 方法。
此外,您還必須指定:
useAdminAccess查詢參數設為true,即可使用使用者的管理員憑證。伺服器會先驗證使用者是否具備必要的管理分類標籤管理員權限,再允許存取。Request指定標籤的適用更新。透過
Properties物件的標籤title。一或多個
Field物件。LabelView物件 (如LABEL_VIEW_FULL),用於設定套用至標籤回應的資源檢視畫面。LABEL_VIEW_FULL會傳回所有可能的欄位。
以下程式碼範例說明如何使用標籤的 id 更新正確標籤:
Python
body = {
'useAdminAccess': True,
'requests': [
{
'updateLabel': {
'properties': {
'title': 'TITLE'
},
'updateMask': 'title'
}
},
{
'createField': {
'field': {
'properties': {
'displayName': 'DISPLAY_NAME'
},
'textOptions': {}
}
}
}
],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
body=body,
name='labels/ID'
).execute()
Node.js
var body = {
'useAdminAccess': true,
'requests': [
{
'updateLabel': {
'properties': {
'title': 'TITLE'
},
'updateMask': 'title'
}
},
{
'createField': {
'field': {
'properties': {
'displayName': 'DISPLAY_NAME'
},
'textOptions': {}
}
}
}
],
'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
name: 'labels/ID',
requestBody: body
}, (err, res) => {
if (err) return console.error('The API returned an error: ' + err);
console.log(res);
});
更改下列內容:
- TITLE:標籤的名稱。
- DISPLAY_NAME:欄位的顯示名稱。
- ID:標籤 ID。
標籤、欄位或選項更新後,標籤的修訂版本 ID 會遞增,且標籤會以草稿標籤的形式儲存在資料庫中。標籤具有 State 的 PUBLISHED
hasUnpublishedChanges
設為 true 的意義,表示有草稿變更,但使用者無法存取。更新後的標籤必須先PUBLISHED,變更才會向使用者顯示。詳情請參閱「標籤生命週期」。