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

בדף הזה נסביר איך להגדיר תווית 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.