ייבוא נתונים ל-Google Chat

תוכלו להשתמש ב-Google Chat API כדי לייבא ל-Google Chat נתונים מפלטפורמות אחרות של העברת הודעות. אתם יכולים לייבא הודעות קיימות, קבצים מצורפים, תגובות, חברי מועדון וישויות במרחב המשותף מפלטפורמות אחרות להעברת הודעות, למשאבים מתאימים של Chat API. אפשר לייבא את הנתונים על ידי יצירת מרחבים ב-Chat במצב ייבוא וייבוא נתונים למרחבים המשותפים האלה. בסיום התהליך, המרחבים המשותפים האלה הופכים למרחבים משותפים רגילים ב-Chat.

  1. בודקים את מגבלות השימוש ב-API ומתכננים מראש.
  2. איך מגדירים הרשאה לאפליקציית Chat
  3. איך יוצרים מרחב משותף במצב ייבוא
  4. ייבוא משאבים
  5. אימות המשאבים המיובאים.
  6. התאמה להבדלים בין משאבים מיובאים לבין נתוני מקור.
  7. מצב ייבוא מלא.
  8. יוצרים מקורות מידע על מינויים.

דרישות מוקדמות

Apps Script

Python

  • Python 3.6 ומעלה
  • הכלי לניהול חבילות pip
  • ספריות הלקוח העדכניות של Google ל-Python. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:

    pip3 install --upgrade google-api-python-client google-auth
    
  • אפליקציה שפורסמה ב-Chat. כדי ליצור ולפרסם אפליקציית Chat, תוכלו להיעזר במאמר איך יוצרים אפליקציית Google Chat.

  • הגדרה של הרשאה לאפליקציית Chat. ההרשאה לאפליקציית Chat צריכה לקבל הרשאה ברמת הדומיין בכל דומיין שהאפליקציה מייבאת בו תוכן. מידע נוסף זמין במאמר אישור אפליקציות ל-Chat.

בוחנים את מגבלות השימוש ב-API ומתכננים מראש

משך הזמן שנדרש לייבוא הנתונים ל-Chat יכול להשתנות בהתאם לכמות המשאבים ב-Chat שרוצים לייבא. כדאי לתכנן מראש לפי מגבלות השימוש באפליקציית Chat ועל כמות הנתונים שמתוזמנים לייבוא מפלטפורמת המקור להעברת הודעות, כדי לקבוע את לוח הזמנים המשוער.

יצירת מרחב משותף במצב ייבוא

כדי ליצור מרחב במצב ייבוא, קוראים ל-method create במשאב Space ומגדירים את importMode לערך true. כדי לשמר את זמן היצירה של ישות המרחב המשותף מפלטפורמת המקור להעברת הודעות, ניתן להגדיר את createTime של המרחב. צריך להגדיר את createTime הזה לערך בין 1 בינואר 2000 ועד היום.

שימו לב ל-name של המרחב המשותף שאתם יוצרים, כדי שתוכלו להיעזר בו בשלבים הבאים כשמייבאים תוכן למרחב המשותף.

מרגע הקריאה ל-method create, יהיו לאפליקציות ל-Chat 30 יום לייבא משאבים למרחב המשותף, להשלים את מצב הייבוא וליצור משאבי מינוי באמצעות ההיקףchat.import. אפליקציות ל-Chat עדיין יכולות ליצור מועדון חברים אחרי 30 יום, באמצעות היקפי החברות הרגילים של Chat API. אחרי 30 יום, אם המרחב המשותף עדיין במצב ייבוא, הוא יימחק אוטומטית ולא יהיה נגיש ואי אפשר יהיה לשחזר אותו. כדאי להתכונן מראש ולבדוק את מגבלות השימוש באפליקציית Chat, כדי שיהיה אפשר לייבא את כל המשאבים המתוזמנים ל-Chat במסגרת הזמן הזו.

תוכלו לראות בדוגמה הבאה איך ליצור מרחב משותף במצב ייבוא:

Apps Script

function createSpaceInImportMode() {
  const space = Chat.Spaces.create({
      spaceType: 'SPACE',
      displayName: 'Import Mode Space',
      importMode: true,
      createTime: (new Date('January 1, 2000')).toJSON()
  });
  console.log(space.name);
}

Python

"""Create a space in import mode."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

result = (
    service.spaces()
    .create(
        body={
            'spaceType': 'SPACE',
            'displayName': 'Import Mode Space',
            'importMode': True,
            'createTime': f'{datetime.datetime(2000, 1, 1).isoformat()}Z',
        }
    )
    .execute()
)

print(result)

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

  • EMAIL: כתובת האימייל של חשבון המשתמש שאליו אתם מתחזים ברשות ברמת הדומיין.

ייבוא משאבים

כדי לייבא משאבים מפלטפורמות אחרות להעברת הודעות, אתם יוצרים משאבים ב-Google Chat (כמו הודעות, תגובות וקבצים מצורפים) במרחב של מצב הייבוא. כשיוצרים משאב במרחב המשותף, צריך לציין נתונים מהמשאב הקשור מפלטפורמת ההודעות שממנה מתבצעת ההעברה.

הודעות

אתם יכולים לייבא הודעות מאפליקציות ל-Chat באמצעות ההרשאות שלהן, או בשם משתמש באמצעות התחזות. (מחבר ההודעה מוגדר לחשבון המשתמש שאליו הוא מתחזה). מידע נוסף זמין במאמר מתן הרשאה לאפליקציות Chat. כדי לייבא הודעה במרחב עם מצב ייבוא, קוראים ל-method create במשאב Message. כדי לשמר את זמן היצירה של ההודעה המקורית מפלטפורמת המקור להעברת הודעות, אפשר להגדיר את createTime של ההודעה. צריך להגדיר את ה-createTime כערך בין זמן היצירה של המרחב המשותף שהגדרתם בעבר לבין הזמן שבו אתם מציגים אותו.

הודעות באותו מרחב משותף לא יכולות להכיל את אותו createTime, גם אם הודעות קודמות באותו זמן נמחקות.

הודעות שמכילות כתובות URL של צד שלישי במרחבים משותפים של מצב ייבוא לא יכולות לעבד תצוגות מקדימות של קישורים ב-Google Chat.

כשיוצרים את ההודעות במצב ייבוא, מרחבים לא שולחים התראה ולא שולחים אימייל לאף משתמש, כולל הודעות שמכילות אזכורים של משתמשים.

תוכלו להיעזר בדוגמה הבאה כדי ליצור הודעה במרחב עם מצב ייבוא:

Python

"""Create a message in import mode space."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = (
    service.spaces()
    .messages()
    .create(
        parent=NAME,
        body={
            'text': 'Hello, world!',
            'createTime': f'{datetime.datetime(2000, 1, 2).isoformat()}Z',
        },
    )
    .execute()
)

print(result)

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

תגובות

אפליקציית Chat יכולה לייבא תגובות על הודעות באמצעות Chat API. במאמר אישור אפליקציות ל-Chat תוכלו לקרוא על השיטות של המשאבים וסוגי התמיכה באימות במרחבים משותפים של מצב ייבוא.

קבצים מצורפים

אפליקציית Chat יכולה להעלות קבצים מצורפים באמצעות ה-API של Chat. במאמר אישור אפליקציות ל-Chat תוכלו לקרוא על השיטות של המשאבים וסוגי התמיכה באימות במרחבים משותפים של מצב ייבוא. עם זאת, מומלץ מאוד להשתמש ב-Google Drive API כדי להעלות קבצים מצורפים כקובצי Google Drive ולקשר את מזהי ה-URI של הקבצים להודעות המתאימות במרחבי מצב הייבוא, כדי לייבא קבצים מצורפים מפלטפורמות אחרות להעברת הודעות, מבלי להגיע למגבלה הפנימית של Google Chat להעלאת קבצים מצורפים.

מינויים היסטוריים

מינויים היסטוריים הם מינויים שנוצרו למשתמשים שכבר עזבו את ישות המרחב המקורית מפלטפורמת המקור להעברת הודעות, אבל אתם רוצים לשמור את הנתונים שלהם ב-Chat. במאמר יצירת משאב חברות מוסבר איך מוסיפים חברים חדשים אחרי שהמרחב המשותף כבר לא במצב ייבוא.

במקרים רבים, כשהחברים ההיסטוריים האלה כפופים למדיניות שמירת הנתונים ב-Google, כדאי לשמור את הנתונים (כמו הודעות ותגובות) שנוצרו על ידי חברים היסטוריים במרחב לפני הייבוא שלהם ל-Chat. בזמן שהמרחב המשותף נמצא במצב ייבוא, אפשר לייבא אליו את המינויים ההיסטוריים באמצעות ה-method create במשאב Membership. כדי לשמור את זמן העזיבה של החברות ההיסטורית, צריך להגדיר את deleteTime של החברות במועדון. זמן העזיבה חייב להיות מדויק, כי הוא משפיע על הנתונים שיישמרו עבור מועדון החברים של הערוץ. בנוסף, deleteTime צריך להופיע אחרי חותמת הזמן של יצירת המרחב, ולא חותמת זמן עתידית.

בנוסף ל-deleteTime, תוכלו גם להגדיר את createTime כדי לשמר את זמן ההצטרפות המקורי של החברות ההיסטורית. בניגוד ל-deleteTime, createTime הוא אופציונלי. אם המדיניות לא מוגדרת, createTime מחושב באופן אוטומטי על ידי חיסור של מיקרו-שנייה אחת מ-deleteTime. אם המדיניות מוגדרת, הערך createTime חייב להיות לפני deleteTime, וצריך להיות מאוחר יותר ממועד יצירת המרחב המשותף או אחריו. המידע הזה ב-createTime לא משמש לקביעת שמירת הנתונים והוא לא גלוי בכלי ניהול, כמו מסוף Google Admin ו-Google Vault.

יכולות להיות כמה דרכים שבהן משתמש יכול להצטרף למרחב או לעזוב אותו בפלטפורמת העברת ההודעות (באמצעות הזמנות, הצטרפות בעצמו או צירוף משתמש אחר), אבל ב-Chat הפעולות האלה מיוצגות על ידי השדות ההיסטוריים של החברות createTime ו-deleteTime שנוספים או מסירים.

תוכלו להיעזר בדוגמה הבאה כדי ליצור חברות היסטורית במרחב במצב ייבוא:

Python

"""Create a historical membership in import mode space."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
USER = 'users/USER_ID'
result = (
    service.spaces()
    .members()
    .create(
        parent=NAME,
        body={
            'createTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z',
            'deleteTime': f'{datetime.datetime(2000, 1, 4).isoformat()}Z',
            'member': {'name': USER, 'type': 'HUMAN'},
        },
    )
    .execute()
)

print(result)

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

אימות משאבים מיובאים

אפליקציית Chat יכולה לקרוא ולאמת את התוכן של המרחב המשותף במצב ייבוא על ידי קריאה לשיטת list במשאב Message. אפשר לקרוא את המשאבים Reaction ו-Attachment בכל השדות emojiReactionSummaries ו-attachment של ההודעה שהוחזרה. אפליקציות צ'אט יכולות להפעיל את השיטה הזו רק בשם המשתמש באמצעות התחזות. תוכלו לקרוא מידע נוסף במאמר אישור אפליקציות ל-Chat.

אפליקציית Chat יכולה גם לקרוא הודעות ספציפיות לאימות באמצעות קריאה לmethod get במשאב Message. אפליקציות צ'אט יכולות לקרוא לשיטה הזו רק באמצעות ההרשאה שלהן. מידע נוסף זמין במאמר מתן הרשאה לאפליקציות Chat.

באפליקציות של Chat אפשר גם להציג רשימה של מינויים היסטוריים, על ידי קריאה לשיטה list במשאב Membership. אחרי שיוצאים ממצב הייבוא של המרחב המשותף, השיטה list לא חושפת יותר את פרטי החברים ההיסטוריים. אפליקציות צ'אט יכולות להפעיל את השיטה הזו רק בשם המשתמש באמצעות התחזות. מידע נוסף זמין במאמר מתן הרשאה לאפליקציות Chat.

כדי לקרוא את המאפיינים של מרחב במצב ייבוא, מפעילים את השיטה get במשאב Space. אפליקציות צ'אט יכולות לקרוא לשיטה הזו רק באמצעות ההרשאה שלהן. מידע נוסף זמין במאמר מתן הרשאה לאפליקציות Chat.

התאמה של הבדלים בין משאבים מיובאים לנתוני מקור

אם משאב מיובא כבר לא תואם לישות המקורית מפלטפורמת המקור להעברת הודעות, בגלל שינויים בישות המקורית במהלך הייבוא, אפליקציות Chat יכולות לקרוא ל-Chat API כדי לשנות את משאב הצ'אט שיובא. לדוגמה, אם משתמש עורך הודעה בפלטפורמת המקור להעברת הודעות אחרי שהיא נוצרה ב-Chat, אפליקציות Chat יכולות לעדכן את ההודעה המיובאת כך שהיא תשקף את התוכן הנוכחי של ההודעה המקורית.

הודעות

כדי לעדכן את השדות הנתמכים בהודעה במרחב עם מצב ייבוא, אפשר להפעיל את ה-method update במשאב Message. אפשר לקרוא לשיטה הזו רק באמצעות אותה הרשאה ששימשה ליצירת ההודעה הראשונית. אם השתמשתם בהתחזות למשתמש כשיצרתם את ההודעה בפעם הראשונה, תצטרכו להשתמש באותו משתמש מתחזה כדי לעדכן את ההודעה הזו.

כדי למחוק הודעה במרחב עם מצב ייבוא, קוראים ל-method delete במשאב Message. יוצר ההודעה המקורי לא צריך למחוק הודעות במרחב במצב ייבוא, ואפשר למחוק אותן על ידי התחזות לכל משתמש בדומיין. אפליקציות צ'אט יכולות למחוק את ההודעות של עצמן רק באמצעות הרשאה שלהן. מידע נוסף זמין במאמר מתן הרשאה לאפליקציות Chat.

תגובות

כדי למחוק תגובה להודעה במרחב במצב ייבוא, משתמשים ב-method delete במשאב reactions. במאמר אישור אפליקציות ל-Chat תוכלו לקרוא על השיטות של המשאבים וסוגי התמיכה באימות במרחבים משותפים של מצב ייבוא.

קבצים מצורפים

כדי לעדכן קבצים מצורפים להודעה במרחב במצב ייבוא, משתמשים ב-method upload במשאב media. במאמר אישור אפליקציות ל-Chat תוכלו לקרוא על השיטות של המשאבים והסוגים של תמיכה באימות במרחבים משותפים של מצב ייבוא.

מינויים היסטוריים

כדי למחוק מינוי היסטורי במרחבים עם מצב ייבוא, משתמשים בmethod delete במשאב Membership. אחרי שהמרחב המשותף יצא ממצב הייבוא, השיטה delete לא מאפשרת יותר למחוק את חברי המרחב המשותף.

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

Spaces

כדי לעדכן שדות נתמכים במרחב עם מצב ייבוא, צריך להשתמש ב-method patch במשאב spaces.

כדי למחוק מרחב משותף במצב ייבוא, משתמשים ב-method delete במשאב spaces.

במאמר אישור של אפליקציות ל-Chat תוכלו לקרוא על השיטות של המשאבים וסוגי האימות במרחבים משותפים של מצב ייבוא.

השלמת מצב הייבוא

לפני שקוראים ל-method completeImport, חשוב לוודא שהשלמתם את האימות וההתאמה של ההבדלים במשאבים. יציאה ממרחב מחוץ למצב ייבוא היא תהליך בלתי הפיך וממירה את המרחב המשותף במצב הייבוא למרחב רגיל. אין ב-Chat אינדיקטור שמשייך את המרחבים האלה לייבוא נתונים.

כדי להשלים את מצב הייבוא ולהפוך את המרחב המשותף לנגיש למשתמשים, אפליקציית Chat יכולה לקרוא ל-method completeImport במשאב Space. אפשר להפעיל את השיטה הזו באפליקציות צ'אט רק בשם המשתמש באמצעות התחזות. מידע נוסף זמין במאמר מתן הרשאה לאפליקציות Chat. בסיום השיטה הזו, המשתמש שאליו מתחזה יתווסף למרחב המשותף בתור מנהל המרחב. צריך לקרוא לשיטה הזו תוך 30 יום מהקריאה הראשונית ל-method create.space. אם תנסו להפעיל את ה-method הזה אחרי פרק הזמן של 30 יום, השיחה תיכשל כי המרחב המשותף במצב הייבוא נמחק ואי אפשר לגשת אליו יותר לאפליקציית Chat.

המשתמש שאליו מתחזה ב-method completeImport לא חייב להיות יוצר המרחב.

הדוגמה הבאה מראה איך להשלים את מצב הייבוא:

Python

"""Complete import."""

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = service.spaces().completeImport(name=NAME).execute()

print(result)

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

יצירת משאבים למנויים

כדי להוסיף מינויים למרחבים משותפים שמצב הייבוא שלהם הסתיים, קוראים ל-method create במשאב Membership. אפליקציות צ'אט יכולות להמשיך להשתמש בהיקף chat.import ובהתחזות למשתמש כדי להפעיל את ה-method הזה תוך 30 יום מהקריאה הראשונית ל-method create.space. המשתמש שאליו מתחזה חייב להיות מנהל המרחב המשותף.

אחרי שיחלפו 30 ימים, אפליקציות Chat יזדקקו להיקפי חברות נוספים כדי לקרוא לשיטה הזו.

מומלץ שאפליקציות ל-Chat ייצרו משאבי מינויים מיד אחרי שהייבוא יסתיים, כדי שאפליקציות ל-Chat יוכלו להמשיך להשתמש בהיקף chat.import ליצירת חברות, ולספק לכל החברים בקבוצה גישה למרחב המשותף המיובא.