Mengimpor data ke Google Chat

Dengan Google Chat API, Anda dapat mengimpor data dari platform pesan lainnya ke Google Chat. Anda dapat mengimpor pesan, lampiran, reaksi, anggota, dan entity ruang yang ada dari platform pesan lainnya ke resource Chat API yang sesuai. Anda dapat mengimpor data ini dengan membuat ruang Chat dalam mode impor dan mengimpor data ke ruang tersebut.

Berikut adalah ringkasan langkah-langkah yang terlibat dalam mengimpor data menggunakan ruang mode impor:

  1. Tinjau batas penggunaan API dan rencanakan di awal.
  2. Mengonfigurasi otorisasi untuk aplikasi Chat.
  3. Membuat ruang dalam mode impor.
  4. Mengimpor resource.
  5. Memvalidasi resource yang diimpor.
  6. Rekonsiliasi perbedaan resource yang diimpor dari data sumber.
  7. Selesaikan mode impor.
  8. Buat referensi keanggotaan.

Prasyarat

Apps Script

Python

  • Python 3.6 atau yang lebih baru
  • Alat pengelolaan paket pip
  • Library klien Google terbaru untuk Python. Untuk menginstal atau mengupdatenya, jalankan perintah berikut di antarmuka command line Anda:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Aplikasi Chat yang dipublikasikan. Untuk membuat dan memublikasikan aplikasi Chat, lihat Mem-build aplikasi Google Chat.

  • Otorisasi dikonfigurasi untuk aplikasi Chat. Aplikasi Chat harus didelegasikan ke otoritas seluruh domain di domain apa pun tempat aplikasi mengimpor konten. Lihat Mengizinkan aplikasi Chat.

Tinjau batas penggunaan API dan rencanakan di awal

Waktu yang diperlukan untuk mengimpor data ke Chat dapat sangat bervariasi, bergantung pada jumlah resource Chat yang akan diimpor. Rencanakan di awal dengan meninjau batas penggunaan aplikasi Chat Anda dan jumlah data yang dijadwalkan untuk diimpor dari platform pesan sumber, untuk menentukan perkiraan linimasa.

Membuat ruang dalam mode impor

Untuk membuat ruang dalam mode impor, panggil metode create pada resource Space dan setel importMode ke true. Untuk mempertahankan waktu pembuatan entity ruang yang setara dari platform pesan sumber, Anda dapat menetapkan createTime ruang. createTime ini harus ditetapkan ke nilai antara 1 Januari 2000 dan waktu saat ini.

Catat name ruang yang Anda buat sehingga Anda dapat mereferensikannya di langkah-langkah selanjutnya saat mengimpor konten ke ruang.

Sejak metode create dipanggil, aplikasi Chat memiliki waktu 30 hari untuk mengimpor resource ke ruang, untuk menyelesaikan mode impor, dan untuk membuat resource keanggotaan menggunakan cakupan chat.import. Aplikasi Chat masih dapat membuat keanggotaan setelah 30 hari dengan cakupan keanggotaan Chat API standar. Setelah 30 hari, jika ruang masih dalam mode impor, ruang akan otomatis dihapus dan tidak dapat diakses, serta tidak dapat dipulihkan oleh aplikasi Chat. Rencanakan terlebih dahulu dengan meninjau batas penggunaan aplikasi Chat Anda untuk memastikan bahwa semua resource terjadwal dapat diimpor ke Chat dalam jangka waktu ini.

Contoh berikut menunjukkan cara membuat ruang dalam mode impor:

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)

Ganti kode berikut:

  • EMAIL: alamat email akun pengguna yang Anda tiru oleh otoritas seluruh domain.

Mengimpor resource

Untuk mengimpor resource dari platform pesan lain, Anda harus membuat resource Google Chat (seperti pesan, reaksi, lampiran) di ruang mode impor. Saat membuat resource di ruang, Anda menentukan data dari resource terkait dari platform pesan tempat migrasi.

Pesan

Aplikasi Chat Anda dapat mengimpor pesan menggunakan otoritasnya sendiri, atau atas nama pengguna melalui peniruan identitas. (Penulis pesan ditetapkan ke akun pengguna yang ditiru identitasnya.) Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat. Untuk mengimpor pesan dalam ruang mode impor, panggil metode create di resource Message. Untuk mempertahankan waktu pembuatan pesan asli dari platform pesan sumber, Anda dapat menetapkan createTime pesan. createTime ini harus ditetapkan ke nilai antara waktu pembuatan ruang yang Anda tetapkan sebelumnya dan waktu saat ini.

Pesan di ruang yang sama tidak dapat berisi createTime yang sama, meskipun pesan sebelumnya dengan waktu tersebut dihapus.

Pesan yang berisi URL pihak ketiga dalam ruang mode impor tidak dapat merender pratinjau link dalam Google Chat.

Saat Anda membuat pesan dalam mode impor, ruang tidak akan memberi tahu atau mengirim email kepada pengguna mana pun, termasuk pesan yang berisi sebutan pengguna.

Contoh berikut menunjukkan cara membuat pesan dalam ruang mode impor:

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)

Ganti kode berikut:

Reaksi

Aplikasi Chat Anda dapat mengimpor reaksi untuk pesan menggunakan Chat API. Untuk mengetahui informasi tentang metode resource dan jenis dukungan autentikasi dalam ruang mode impor, lihat Mengizinkan aplikasi Chat.

Lampiran

Aplikasi Chat Anda dapat mengupload lampiran menggunakan Chat API. Untuk mengetahui informasi tentang metode resource dan jenis dukungan autentikasi dalam ruang mode impor, lihat Mengizinkan aplikasi Chat.

Histori keanggotaan

Langganan historis adalah langganan yang dibuat untuk pengguna yang telah keluar dari entitas ruang asli dari platform pesan sumber, tetapi Anda ingin mempertahankan datanya di Chat. Untuk mengetahui informasi tentang cara menambahkan anggota baru setelah ruang tidak lagi dalam mode impor, lihat Membuat resource keanggotaan.

Dalam banyak kasus, saat anggota historis tersebut tunduk pada kebijakan retensi data di Google, Anda perlu menyimpan data (seperti Pesan dan reaksi) yang dibuat oleh keanggotaan historis dalam ruang sebelum mengimpornya ke Chat. Saat ruang berada dalam mode impor, Anda dapat mengimpor keanggotaan historis tersebut ke ruang, menggunakan metode create di resource Membership. Untuk mempertahankan waktu cuti langganan historis, Anda harus menetapkan deleteTime langganan. Waktu cuti ini harus akurat karena memengaruhi data mana yang perlu dipertahankan untuk keanggotaan tersebut. Selain itu, deleteTime ini harus setelah stempel waktu pembuatan ruang dan tidak boleh berupa stempel waktu yang akan datang.

Selain deleteTime, Anda juga dapat menetapkan createTime untuk mempertahankan waktu bergabung asli dari langganan historis. Tidak seperti deleteTime, createTime bersifat opsional. Jika tidak disetel, createTime akan otomatis dihitung dengan mengurangi 1 mikrodetik dari deleteTime. Jika ditetapkan, createTime harus sebelum deleteTime dan harus berada pada atau setelah waktu pembuatan ruang. Informasi createTime ini tidak digunakan untuk menentukan retensi data dan tidak terlihat dalam alat admin seperti konsol Google Admin dan Google Vault.

Meskipun mungkin ada beberapa cara bagi pengguna untuk bergabung dan keluar dari ruang di platform pesan sumber (melalui undangan, bergabung sendiri, ditambahkan oleh pengguna lain), di Chat semua tindakan tersebut diwakili oleh kolom createTime dan deleteTime keanggotaan historis sebagai ditambahkan atau dihapus.

Contoh berikut menunjukkan cara membuat keanggotaan historis dalam ruang mode impor:

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)

Ganti kode berikut:

Memvalidasi resource yang diimpor

Aplikasi Chat Anda dapat membaca kembali dan memvalidasi konten ruang mode impor dengan memanggil metode list pada resource Message. Anda dapat membaca resource Reaction dan Attachment dari kolom emojiReactionSummaries dan attachment pada pesan yang ditampilkan. Aplikasi chat hanya dapat memanggil metode ini atas nama pengguna melalui peniruan identitas. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat.

Aplikasi Chat Anda juga dapat membaca setiap pesan untuk divalidasi dengan memanggil metode get pada resource Message. Aplikasi chat hanya dapat memanggil metode ini untuk membaca pesannya sendiri menggunakan otoritasnya sendiri. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat.

Aplikasi chat juga dapat mencantumkan histori keanggotaan dengan memanggil metode list di resource Membership. Setelah ruang keluar dari mode impor, metode list tidak lagi menampilkan keanggotaan historis. Aplikasi chat hanya dapat memanggil metode ini atas nama pengguna melalui peniruan identitas. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat.

Anda dapat membaca properti ruang mode impor dengan memanggil metode get pada resource Space. Aplikasi chat hanya dapat memanggil metode ini menggunakan otoritasnya sendiri. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat.

Rekonsiliasi perbedaan resource yang diimpor dari data sumber

Jika resource yang diimpor tidak lagi cocok dengan entity asli dari platform pesan sumber karena perubahan dalam entity asli selama impor, aplikasi Chat dapat memanggil Chat API untuk mengubah resource chat yang diimpor. Misalnya, jika pengguna mengedit pesan di platform pesan sumber setelah pesan tersebut dibuat di Chat, aplikasi Chat dapat mengupdate pesan yang diimpor agar mencerminkan konten pesan asli saat ini.

Pesan

Untuk memperbarui kolom yang didukung pada pesan dalam ruang mode impor, panggil metode update di resource Message. Aplikasi Chat hanya dapat memanggil metode ini menggunakan otoritas yang sama dengan yang digunakan saat pembuatan pesan awal. Jika Anda menggunakan peniruan identitas pengguna selama pembuatan pesan awal, Anda harus menggunakan pengguna identitas yang sama untuk memperbarui pesan tersebut.

Untuk menghapus pesan di ruang mode impor, panggil metode delete di resource Message. Pesan dalam ruang mode impor tidak perlu dihapus oleh pembuat pesan asli dan dapat dihapus dengan meniru identitas pengguna mana pun di domain. Aplikasi chat hanya dapat menghapus pesannya sendiri menggunakan izinnya sendiri. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat.

Reaksi

Untuk menghapus reaksi bagi pesan dalam ruang mode impor, gunakan metode delete pada resource reactions. Untuk mengetahui informasi tentang metode resource dan jenis dukungan autentikasi dalam ruang mode impor, lihat Mengizinkan aplikasi Chat.

Lampiran

Untuk mengupdate lampiran untuk pesan dalam ruang mode impor, gunakan metode upload pada resource media. Untuk mengetahui informasi tentang metode dan jenis resource yang mendukung autentikasi dalam ruang mode impor, lihat Mengizinkan aplikasi Chat.

Histori keanggotaan

Untuk menghapus keanggotaan historis di ruang mode impor, gunakan metode delete pada resource Membership. Setelah ruang keluar dari mode impor, metode delete tidak lagi memungkinkan Anda menghapus anggota historis.

Anda tidak dapat memperbarui keanggotaan historis dalam ruang mode impor. Jika ingin memperbaiki keanggotaan historis yang salah diimpor, Anda harus menghapusnya terlebih dahulu, lalu membuatnya ulang saat ruang masih dalam mode impor.

Ruang

Untuk memperbarui kolom yang didukung di ruang mode impor, gunakan metode patch pada resource spaces.

Untuk menghapus ruang mode impor, gunakan metode delete pada resource spaces.

Untuk mengetahui informasi tentang metode dan jenis resource yang mendukung autentikasi resource dalam ruang mode impor, lihat Mengizinkan aplikasi Chat.

Selesaikan mode impor

Sebelum memanggil metode completeImport, Anda harus memastikan bahwa validasi dan rekonsiliasi perbedaan resource telah diselesaikan. Keluar dari ruang di luar mode impor merupakan proses yang tidak dapat dibatalkan dan mengonversi ruang mode impor menjadi ruang reguler. Tidak ada indikator di Chat yang mengatribusikan ruang ini ke impor data.

Untuk menyelesaikan mode impor dan membuat ruang dapat diakses oleh pengguna, aplikasi Chat dapat memanggil metode completeImport di resource Space. Aplikasi Chat hanya dapat memanggil metode ini atas nama pengguna melalui peniruan identitas. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan aplikasi Chat. Pengguna yang ditiru identitasnya akan ditambahkan ke ruang sebagai pengelola ruang setelah metode ini selesai. Metode ini harus dipanggil dalam waktu 30 hari sejak panggilan metode create.space awal. Jika Anda mencoba memanggil metode ini setelah durasi 30 hari berlalu, panggilan akan gagal karena ruang mode impor dihapus dan tidak dapat diakses lagi oleh aplikasi Chat.

Pengguna yang ditiru identitasnya dalam metode completeImport tidak perlu menjadi pembuat ruang.

Contoh berikut menunjukkan cara menyelesaikan mode impor:

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)

Ganti kode berikut:

Membuat referensi keanggotaan

Untuk menambahkan keanggotaan pengguna untuk ruang yang telah menyelesaikan mode impor, panggil metode create di resource Membership. Aplikasi Chat dapat terus menggunakan cakupan chat.import dan peniruan identitas pengguna untuk memanggil metode ini dalam waktu 30 hari sejak panggilan metode create.space awal. Pengguna yang ditiru identitasnya harus merupakan pengelola ruang.

Setelah durasi 30 hari berlalu, aplikasi Chat memerlukan cakupan keanggotaan tambahan untuk memanggil metode ini.

Sebaiknya aplikasi Chat membuat resource keanggotaan segera setelah impor selesai, sehingga aplikasi Chat dapat terus menggunakan cakupan chat.import untuk pembuatan keanggotaan dan untuk memberi semua anggota akses ke ruang yang diimpor.