הגדרה של שדה תווית בקובץ

בדף הזה נסביר איך להגדיר תווית Field בקובץ יחיד ב-Google Drive.

כדי להוסיף מטא-נתונים לקובץ על ידי הגדרת תווית לקובץ, משתמשים בשיטה files.modifyLabels. גוף הבקשה מכיל מופע של ModifyLabelsRequest כדי לשנות את קבוצת התוויות בקובץ. הבקשה עשויה להכיל כמה שינויים שחלים באופן אטומי. כלומר, אם אחד מהשינויים לא תקף, כל העדכון נכשל ואף אחד מהשינויים (שעשויים להיות תלויים) לא מוחל.

השדה ModifyLabelsRequest מכיל מופע של LabelModification, שהוא שינוי בתווית בקובץ. הוא עשוי גם להכיל מופע של FieldModification, שהוא שינוי בשדה של תווית.

אם הפעולה מצליחה, גוף התגובה מכיל את התוויות שנוספו או עודכנו באמצעות הבקשה. הם נמצאים באובייקט modifiedLabels מסוג Label.

דוגמה

בדוגמת הקוד הבאה מוסבר איך להשתמש ב-fieldId של שדה טקסט כדי להגדיר ערך ל-Field הזה בקובץ. כשמגדירים תווית Field בקובץ בפעם הראשונה, היא חלה על הקובץ. לאחר מכן תוכלו לבטל את ההגדרה של שדה יחיד או להסיר את כל השדות שמשויכים לתווית. מידע נוסף זמין במאמרים ביטול ההגדרה של שדה תווית בקובץ והסרת תווית מקובץ.

Java

LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));

ModifyLabelsRequest modifyLabelsRequest =
  new ModifyLabelsRequest()
      .setLabelModifications(
          ImmutableList.of(
              new LabelModification()
                .setLabelId("LABEL_ID")
                .setFieldModifications(ImmutableList.of(fieldModification))));

ModifyLabelsResponse modifyLabelsResponse = driveService.files().modifyLabels("FILE_ID", modifyLabelsRequest).execute();

Python

field_modification = {'fieldId':'FIELD_ID','setTextValues':['VALUE']}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute()

Node.js

/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  const fieldModification = {
    'fieldId': 'FIELD_ID',
    'setTextValues': ['VALUE'],
  };
  const labelModification = {
    'labelId': 'LABEL_ID',
    'fieldModifications': [fieldModification],
  };
  const labelModificationRequest = {
    'labelModifications': [labelModification],
  };
  try {
    const updateResponse = await service.files.modifyLabels({
      fileId: 'FILE_ID',
      resource: labelModificationRequest,
    });
    return updateResponse;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • FIELD_ID: ה-fieldId של השדה שרוצים לשנות. כדי לאתר את fieldId, אפשר לאחזר את התווית באמצעות Google Drive Labels API.
  • VALUE: הערך החדש של value בשדה הזה.
  • LABEL_ID: ה-labelId של התווית שרוצים לשנות.
  • FILE_ID: ה-fileId של הקובץ שעבורו משנים את התוויות.

הערות

  • כדי להגדיר תווית ללא שדות, מחילים את labelModifications בלי fieldModifications.
  • כדי להגדיר ערכים לאפשרויות של שדות הבחירה, משתמשים במזהה Choice של הערך שאפשר לקבל על ידי אחזור הסכימה של התווית ב-Drive Labels API.
  • אפשר להגדיר כמה ערכים רק ב-Field שתומך ברשימות של ערכים, אחרת תופיע תגובת השגיאה 400: Bad Request.
  • צריך להגדיר את סוג הערך המתאים ל-Field שנבחר (כמו מספר שלם, טקסט, משתמש וכו'), אחרת תופיע תגובת השגיאה 400: Bad Request. אפשר לאחזר את סוג הנתונים בשדה באמצעות Drive Labels API.