您可以套用一組更新要求來更新單一標籤,這會產生新的草稿修訂版本。舉例來說,您可以更新現有標籤的屬性 (標籤說明),也可以在標籤中新增 Field
。
標籤更新會做為批次更新,因為該方法會採用更新 Request
物件的清單。並依照批次要求中指定的順序進行更新。系統會以不可分割的形式套用批次更新中的更新。也就是說,如果批次中的任何要求失敗,整個更新作業就會失敗,且不會套用任何 (可能依附的) 變更。標籤則維持不變。
如果更新成功,則必須發布產生的草稿修訂版本,才能將變更套用至任何 Google 雲端硬碟項目。
更新標籤物件
標籤包含許多可更新的其他物件類型,例如:
- 標籤屬性
- 欄位和欄位類型
- 選項和選項屬性
這些是控制標籤外觀和運作的眾多物件中的一部分。
作業類別
labels.delta
方法支援的下列作業可分為以下幾大類別:
類別 | 說明 |
---|---|
建立 | 新增物件。 |
更新 | 更新物件的特定屬性。 |
啟用 | 啟用物件。 |
停用 | 停用物件。 |
刪除 | 移除物件。 |
這些類別會在下一節中用於說明特定作業的行為。
更新要求
labels.delta
方法會採用一或多個 Request 物件,每個物件都會指定要執行的單一類型要求。要求有許多不同的類型。以下是請求類型細目,並分為不同類別。
欄位遮罩
許多「更新」和「停用」類型的要求都需要 FieldMask
。這是以半形逗號分隔的欄位清單,您可以更新其中的欄位,而其他欄位則保持不變。遮罩是必要條件,可確保系統只更新您要編輯的欄位。您必須至少指定一個欄位。
範例
如要更新標籤,請在 labels
集合上使用 delta
方法。
您也必須指定下列項目:
useAdminAccess
是true
,用於使用使用者的管理員憑證。在允許存取權之前,伺服器會先驗證使用者是否為標籤的管理員。指定標籤適用更新的
Request
。透過
property
方法設定的標籤title
。一或多個
Field
。代表每個標籤的標籤資源。其中包含資源
Name
和ID
,這是標籤的全域專屬 ID。LabelView
是LABEL_VIEW_FULL
,用於設定套用至標籤回應的資源檢視畫面。LABEL_VIEW_FULL
會傳回所有可能的欄位。
本範例使用 ID
更新正確的標籤。
body = {
'use_admin_access': True,
'requests': [{
'update_label': {
'properties': {
'title': 'TITLE '
},
'update_mask': {
'paths': ['title']
}
},
}, {
'create_field': {
'field': {
'properties': {
'display_name': 'DISPLAY_NAME '
},
'text_options': {}
}
}
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
body=body,
name='labels/ID ').execute()
var body = {
'use_admin_access': true,
'requests': [{
'update_label': {
'properties': {
'title': 'TITLE '
},
'update_mask': {
'paths': ['title']
}
},
}, {
'create_field': {
'field': {
'properties': {
'display_name': 'DISPLAY_NAME '
},
'text_options': {}
}
}
}],
'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
'resource': body,
'name': 'labels/ID '
}, (err, res) => {
if (err) return console.error('The API returned an error: ' + err);
console.log(res);
});
標籤、欄位或選項會更新,標籤的修訂 ID 會增加,標籤會儲存在資料庫中做為草稿標籤。標籤具有 PUBLISHED
的 State
,其中 hasUnpublishedChanges=true
表示草稿有變更,但使用者無法存取。更新的標籤必須是 PUBLISHED
,使用者才能看到變更。詳情請參閱「標籤生命週期」。