Dengan Google Chat API, Anda dapat mengimpor data dari platform pesan lainnya ke Google Chat. Anda dapat mengimpor pesan, lampiran, reaksi, keanggotaan, dan entitas 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 dalam ruang tersebut. Setelah proses berhasil diselesaikan, ruang ini akan menjadi ruang Chat standar.
- Tinjau batas penggunaan API dan buat rencana di awal.
- Mengonfigurasi otorisasi untuk aplikasi Chat.
- Membuat ruang dalam mode impor.
- Mengimpor resource.
- Validasi resource yang diimpor.
- Rekonsiliasi perbedaan resource yang diimpor dari data sumber.
- Selesaikan mode impor.
- Berikan akses ke ruang setelah mode impor.
Prasyarat
Apps Script
- Akun Google Workspace dengan akses ke Google Chat.
- Aplikasi Chat yang dipublikasikan. Untuk mem-build aplikasi Chat, ikuti quickstart ini.
Python
- Python 3.6 atau yang lebih baru
- Alat pengelolaan paket pip
Library klien Google terbaru untuk Python. Untuk menginstal atau mengupdate aplikasi tersebut, 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 yang dikonfigurasi untuk aplikasi Chat. Aplikasi Chat harus didelegasikan ke otoritas seluruh domain di semua domain tempat aplikasi mengimpor konten. Lihat Memberi otorisasi aplikasi Chat.
Meninjau batas penggunaan API dan membuat rencana ke depannya
Waktu yang diperlukan untuk mengimpor data ke Chat dapat sangat bervariasi, bergantung pada jumlah resource Chat yang akan diimpor. Rencanakan 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 tetapkan importMode
ke true
. Untuk mempertahankan waktu pembuatan
entity ruang yang setara dari platform pesan sumber, Anda dapat menetapkan
createTime
ruang. createTime
ini harus disetel ke nilai antara
1 Januari 2000 dan waktu saat ini.
Untuk membuat ruang eksternal dalam mode impor, tetapkan externalUserAllowed
ke true
.
Catat name
ruang yang Anda buat sehingga Anda dapat mereferensikannya di
langkah-langkah berikutnya saat mengimpor konten ke dalam ruang.
Sejak metode create
dipanggil, aplikasi Chat memiliki waktu
30 hari untuk
mengimpor resource
ke dalam ruang, untuk menyelesaikan mode impor, dan untuk
memberikan akses ke ruang 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 tersebut akan otomatis dihapus dan tidak dapat diakses serta tidak dapat dipulihkan. Rencanakan dengan meninjau
batas penggunaan aplikasi Chat
Anda untuk memastikan 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 dengan otoritas seluruh domain.
Mengimpor resource
Untuk mengimpor resource dari platform pesan lain, buat resource Google Chat (seperti pesan, reaksi, lampiran) di ruang mode impor. Saat membuat resource dalam ruang, Anda menentukan data dari resource terkait dari platform pesan asal 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 di ruang mode impor, panggil
metode create
pada
resource Message
.
Untuk mempertahankan waktu pembuatan pesan asli dari platform
pesan sumber, Anda dapat menyetel createTime
pesan. createTime
ini harus ditetapkan ke nilai antara waktu pembuatan ruang yang
sebelumnya Anda tetapkan 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 memberi tahu atau mengirim email ke pengguna, termasuk pesan yang berisi sebutan pengguna.
Contoh berikut menunjukkan cara membuat pesan di 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:
EMAIL
: alamat email akun pengguna yang Anda tiru identitasnya dengan otoritas seluruh domain.SPACE_NAME
: nama untuk ruang yang dibuat dalam mode impor.
Reaksi
Aplikasi Chat Anda dapat mengimpor reaksi untuk pesan menggunakan Chat API. Untuk mengetahui informasi tentang metode resource dan jenis dukungan autentikasi di 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 di ruang mode impor, lihat Mengizinkan aplikasi Chat. Namun, sebaiknya Anda menggunakan Google Drive API untuk mengupload lampiran sebagai file Google Drive dan menautkan URI file ke masing-masing pesan di ruang mode impor untuk mengimpor lampiran dari platform pesan lain agar tidak mencapai batas internal Google Chat untuk upload lampiran.
Histori keanggotaan
Keanggotaan historis adalah keanggotaan yang dibuat untuk pengguna yang telah keluar dari entity 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 ingin mempertahankan data (seperti Pesan dan reaksi) yang dibuat berdasarkan keanggotaan historis di ruang sebelum mengimpornya ke Chat.
Saat ruang berada dalam mode impor, Anda dapat mengimpor keanggotaan historis tersebut
ke dalam ruang, menggunakan
metode create
pada
resource Membership
.
Untuk mempertahankan waktu keluar langganan historis, Anda harus menetapkan
deleteTime
langganan. Waktu cuti ini harus akurat karena akan
memengaruhi data yang perlu disimpan untuk keanggotaan tersebut. Selain itu, deleteTime
ini
harus berada 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 keanggotaan 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 secara mandiri, ditambahkan
oleh pengguna lain), di Chat, semua tindakan tersebut direpresentasikan oleh
kolom deleteTime
dan createTime
keanggotaan historis sebagai telah ditambahkan
atau dihapus.
Contoh berikut menunjukkan cara membuat keanggotaan historis di 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:
EMAIL
: alamat email akun pengguna yang Anda tiru identitasnya dengan otoritas seluruh domain.SPACE_NAME
: nama untuk ruang yang dibuat dalam mode impor.USER_ID
: ID unik untuk pengguna.
Mengimpor resource di ruang eksternal
Meskipun kami mendukung pembuatan ruang eksternal dengan mode impor, kami tidak dapat mengizinkan pengimporan resource menggunakan kredensial milik pengguna di luar organisasi Workspace Anda selama mode impor. Setelah ruang menyelesaikan mode impor, pengguna eksternal ini dapat diundang untuk bergabung ke ruang yang diimpor (lihat bagian akses) , dan kredensial mereka dapat digunakan untuk memanggil Chat API.
Memvalidasi resource yang diimpor
Aplikasi Chat Anda dapat membaca kembali dan memvalidasi konten
ruang mode impor dengan memanggil
metode list
di
resource Message
.
Anda dapat membaca resource Reaction
dan Attachment
dari kolom emojiReactionSummaries
dan attachment
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 pesan individual untuk
validasi 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 keanggotaan historis dengan memanggil
metode list
pada
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.
Merekonsiliasi perbedaan resource yang diimpor dari data sumber
Jika resource yang diimpor tidak lagi cocok dengan entity asli dari platform pesan sumber karena adanya perubahan pada entity asli selama proses 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 sehingga mencerminkan konten pesan asli saat ini.
Pesan
Untuk mengupdate
kolom yang didukung
pada pesan di ruang mode impor, panggil
metode update
di
resource Message
.
Aplikasi chat hanya dapat memanggil metode ini menggunakan otoritas yang sama dengan yang
digunakan selama pembuatan pesan awal. Jika Anda menggunakan peniruan identitas pengguna selama pembuatan pesan awal, Anda harus menggunakan pengguna yang sama yang ditiru identitasnya untuk memperbarui pesan tersebut.
Untuk menghapus pesan di ruang mode impor, panggil
metode delete
pada
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
otoritasnya sendiri. Untuk mengetahui informasi selengkapnya, lihat
Mengizinkan aplikasi Chat.
Reaksi
Untuk menghapus reaksi pada pesan dalam ruang mode impor, gunakan
metode delete
pada resource reactions
. Untuk mengetahui informasi tentang metode resource dan jenis dukungan autentikasi di ruang mode impor, lihat Mengizinkan aplikasi Chat.
Lampiran
Untuk memperbarui lampiran pesan dalam ruang mode impor, gunakan
metode upload
pada resource
media
. Untuk mengetahui informasi tentang metode resource dan jenis dukungan autentikasi di 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 memungkinkan Anda menghapus keanggotaan
historis lagi.
Anda tidak dapat memperbarui keanggotaan historis di ruang mode impor. Jika ingin memperbaiki keanggotaan historis yang diimpor dengan tidak benar, Anda harus menghapusnya terlebih dahulu, lalu membuatnya kembali 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 resource dan jenis dukungan autentikasi di ruang mode impor, lihat Memberi otorisasi aplikasi Chat.
Selesaikan mode impor
Sebelum memanggil metode completeImport
, Anda harus memastikan bahwa
validasi dan
rekonsiliasi perbedaan resource
sudah selesai. Keluar dari ruang dari mode impor adalah proses yang tidak dapat dibatalkan dan
akan 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
pada
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 harus 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:
EMAIL
: alamat email akun pengguna yang Anda tiru identitasnya dengan otoritas seluruh domain.SPACE_NAME
: nama untuk ruang yang dibuat dalam mode impor.
Memberikan akses ke ruang setelah mode impor
Untuk memberi pengguna Chat akses ke ruang yang baru-baru ini diimpor,
aplikasi Chat dapat terus menggunakan cakupan chat.import
dan peniruan identitas
pengguna dalam waktu 30 hari sejak panggilan metode create.space()
awal untuk melakukan
hal berikut:
- Menambahkan anggota ke ruang: Panggil metode
create()
di resourceMembership
. Sebaiknya aplikasi Chat membuat resourceMembership
segera setelah impor ruang selesai, agar aplikasi Chat dapat terus menggunakan cakupanchat.import
, dan memastikan bahwa semua anggota yang diimpor memiliki akses ke ruang tersebut. - Menetapkan target audiens: Panggil
metode
update()
di resourceSpace
. Untuk mempelajari cara membuat dan menambahkan target audiens, lihat Membuat ruang Google Chat dapat ditemukan oleh pengguna tertentu di organisasi Google Workspace.
Untuk menggunakan metode ini dengan cakupan chat.import
, pengguna yang ditiru identitasnya harus
menjadi pengelola ruang.
Untuk ruang eksternal, metode create()
keanggotaan juga memungkinkan untuk mengundang pengguna di luar organisasi Workspace Anda. Pastikan
Anda memahami semua
batasan umum untuk
pengguna eksternal.