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
を使用して正しいラベルを更新します。
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
にする必要があります。詳細については、ラベルのライフサイクルをご覧ください。