一連の更新リクエストを適用することで 1 つのラベルを更新でき、それにより新しい下書きのリビジョンが作成されます。たとえば、既存のラベルのプロパティ(ラベルの説明)を更新したり、ラベルに新しい Field
を追加したりできます。
ラベルの更新は、更新 Request
オブジェクトのリストを受け取るバッチ アップデートとして機能します。バッチ リクエストで指定された順序と同じ順序で更新します。バッチ アップデートの更新はアトミックに適用されます。つまり、バッチ内のリクエストが失敗した場合、更新全体が失敗し、依存する可能性のある変更は適用されません。ラベルは変更されません。
更新が成功した場合、作成された下書きのリビジョンを公開しないと、変更をドライブのアイテムに適用できません。
ラベル オブジェクトを更新する
ラベルには、更新可能なその他のさまざまなオブジェクト タイプが含まれます。次に例を示します。
- ラベルのプロパティ
- フィールドとフィールド タイプ
- 選択の選択肢と選択の選択肢のプロパティ
これらは、ラベルの外観と操作を制御する多くのオブジェクトの一部です。
オペレーションのカテゴリ
labels.delta
メソッドでサポートされている次のオペレーションは、次のおおまかなカテゴリに分類できます。
カテゴリ | 説明 |
---|---|
作成 | オブジェクトを追加します。 |
更新 | オブジェクトの特定のプロパティを更新します。 |
有効にする | オブジェクトを有効にします。 |
無効にする | オブジェクトを無効にする。 |
削除 | オブジェクトを削除する。 |
次のセクションでは、特定のオペレーションの動作を説明するために、これらのカテゴリを使用します。
更新リクエスト
labels.delta
メソッドは、1 つ以上の Request オブジェクトを取得することで機能します。このオブジェクトはそれぞれ、実行するリクエストの種類を 1 つ指定します。リクエストにはさまざまな種類があります。ここでは、リクエストの種類をカテゴリに分類しています。
フィールド マスク
「更新」タイプと「無効化」タイプのリクエストの多くは、FieldMask
が必要です。これは、更新するフィールドのカンマ区切りリストで、他のフィールドは変更しません。編集するフィールドのみを更新するために、マスクが必要です。少なくとも 1 つのフィールドを指定する必要があります。
例
ラベルを更新するには、labels
コレクションに対して delta
メソッドを使用します。
次の項目も指定する必要があります。
ユーザーの管理者認証情報を使用する場合、
useAdminAccess
はtrue
です。サーバーは、アクセスを許可する前に、ユーザーがラベルの管理者であることを確認します。ラベルの該当する更新を指定する
Request
。property
メソッドによるラベルtitle
。1 つ以上の
Field
。すべてのラベルを表すラベルリソース。これには、リソース
Name
とID
(ラベルのグローバルに一意の識別子)が含まれます。LabelView
はLABEL_VIEW_FULL
で、ラベルのレスポンスに適用するリソースビューを設定します。LABEL_VIEW_FULL
は、使用可能なすべてのフィールドを返します。
この例では、ID
を使用して正しいラベルを更新しています。
Python
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()
Node.js
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 が増分され、ラベルが下書きラベルとしてデータベースに保存されます。ラベルの State
は PUBLISHED
で、hasUnpublishedChanges=true
は下書きの変更があるものの、ユーザーは利用できないことを意味します。更新されたラベルは、変更がユーザーに表示される前に PUBLISHED
である必要があります。詳細については、ラベルのライフサイクルをご覧ください。