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

באמצעות Google Chat API אפשר לייבא ל-Google Chat נתונים מפלטפורמות אחרות להעברת הודעות. תוכלו לייבא הודעות קיימות, קבצים מצורפים, תגובות, מינויים וישויות במרחב המשותף מפלטפורמות אחרות של העברת הודעות אל משאבי Chat API המתאימים. אפשר לייבא את הנתונים האלה על ידי יצירת מרחבים משותפים ב-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. במאמר פיתוח אפליקציית Google Chat מוסבר איך ליצור ולפרסם אפליקציות ל-Chat.

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

בדיקת מגבלות השימוש ב-API ותכנון מראש

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

איך יוצרים מרחבים משותפים במצב ייבוא

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

שימו לב לname של המרחב המשותף שאתם יוצרים כדי שתוכלו להפנות אליו בשלבים מאוחרים יותר כשמייבאים תוכן.

מהרגע שמפעילים את השיטה create, לאפליקציות ל-Chat יש 30 ימים לייבא משאבים למרחב המשותף, להשלים את מצב הייבוא וליצור משאבים במינוי באמצעות ההיקףchat.import. באפליקציות ל-Chat אפשר עדיין ליצור חברויות במועדונים של ערוצים לאחר 30 יום, באמצעות היקפי המינוי הרגילים של Chat API. אחרי 30 יום, אם המרחב המשותף עדיין במצב ייבוא, הוא נמחק באופן אוטומטי, ולאפליקציית Chat לא תהיה גישה אליו ואי אפשר יהיה לשחזר אותו. כדאי לבדוק מראש את מגבלות השימוש של אפליקציית 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, גם אם ההודעות הקודמות עם השעה הזו נמחקות.

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

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

הדוגמה הבאה מציגה איך ליצור הודעה במרחב של מצב ייבוא:

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 API כדי לייבא תגובות להודעות באפליקציית Chat. במאמר אישור אפליקציות ל-Chat תוכלו לקרוא מידע נוסף על שיטות המשאבים והסוגים של התמיכה באימות במרחבים משותפים שבהם במצב ייבוא.

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

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

חברויות במועדונים היסטוריים

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

במקרים רבים, כשהחברים האלה עם היסטוריית השיחות כפופים למדיניות שמירת נתונים ב-Google, כדאי לשמור את הנתונים (כמו הודעות ותגובות) במרחב המשותף שנוצרו על ידי משתמשים עם היסטוריית השיחות, לפני שמייבאים אותם ל-Chat. כשהמרחב המשותף במצב ייבוא, אפשר לייבא אליו את המינויים ההיסטוריים באמצעות השיטה 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 יכולה לקרוא ולאמת את התוכן במרחב משותף במצב ייבוא על ידי קריאה ל-method list במשאב Message. ניתן לקרוא משאבים Reaction ו-Attachment מכל השדות emojiReactionSummaries ו-attachment של כל הודעה שהוחזרה. באפליקציות צ'אט אפשר לקרוא לשיטה הזו רק בשם המשתמש, על ידי התחזות. תוכלו לקרוא מידע נוסף במאמר אישור אפליקציות ל-Chat.

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

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

אפשר לקרוא את מאפייני המרחב המשותף במצב ייבוא על ידי קריאה ל-method 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 תוכלו לקרוא מידע נוסף על שיטות המשאבים ועל סוגי האימות שתומכים במרחבים משותפים שבהם במצב ייבוא.

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

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

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

המשתמש שאליו בוצעה התחזות בשיטה 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 יכולות להמשיך להשתמש בהיקף chat.import ובהתחזות למשתמש כדי לקרוא לשיטה הזו תוך 30 יום מהקריאה הראשונית ל-method create.space. המשתמש שמתחזים אליו צריך להיות מנהל/ת המרחב המשותף.

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

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