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

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