Halaman ini menjelaskan cara mengaktifkan kembali langganan Google Workspace yang ditangguhkan
dengan menyelesaikan atau memecahkan masalah error dan memanggil metode
subscriptions.reactivate
.
Langganan Google Workspace ditangguhkan setiap kali terjadi error yang mencegah langganan menerima peristiwa. Misalnya, langganan ditangguhkan jika resource target atau endpoint notifikasinya tidak dapat ditemukan. Setelah Anda menyelesaikan error apa pun pada langganan, Anda dapat mengaktifkan kembali langganan untuk mulai menerima peristiwa lagi.
Anda dapat mempelajari langganan yang ditangguhkan dengan cara berikut:
- Aplikasi Anda menerima peristiwa siklus proses tentang penangguhan. Jika langganan Anda ditangguhkan karena error pada endpoint-nya, Anda mungkin tidak menerima peristiwa siklus proses.
- Anda menggunakan metode
subscriptions.get
atausubscriptions.list
untuk melihat apakah kolomstate
langganan ditetapkan keSUSPENDED
. - Anda akan menerima notifikasi tentang kegagalan pengiriman ke endpoint notifikasi Anda. Untuk mempelajari cara memantau kegagalan pengiriman ke topik Google Cloud Pub/Sub, lihat Menangani kegagalan pesan.
Langganan yang diaktifkan kembali akan mempertahankan tanggal habis masa berlaku awal. Untuk memperpanjang waktu habis masa berlaku langganan, lihat Memperbarui atau memperpanjang langganan Google Workspace.
Apps Script
- Langganan Google Workspace. Untuk membuatnya, lihat Membuat langganan.
- Project Apps Script:
- Gunakan project Google Cloud Anda, bukan project default yang dibuat secara otomatis oleh Apps Script.
- Untuk semua cakupan yang Anda tambahkan untuk mengonfigurasi layar izin OAuth, Anda juga harus menambahkan
cakupan ke file
appsscript.json
di project Apps Script Anda. Misalnya, jika Anda menentukan cakupanchat.messages
, tambahkan yang berikut: - Aktifkan
layanan lanjutan
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Memerlukan autentikasi dan cakupan otorisasi yang sesuai untuk setiap jenis peristiwa dalam langganan:
- Untuk autentikasi pengguna, memerlukan satu atau beberapa cakupan yang mendukung setidaknya salah satu jenis peristiwa untuk langganan. Untuk mengidentifikasi cakupan, lihat Cakupan menurut jenis peristiwa.
- Untuk berlangganan peristiwa Chat sebagai aplikasi Chat, diperlukan autentikasi aplikasi dengan persetujuan administrator satu kali. Berlangganan ke peristiwa Chat sebagai aplikasi Chat tersedia di Pratinjau Developer.
Python
- Python 3.6 atau yang lebih baru
- Alat pengelolaan paket pip
- Library klien Google terbaru untuk Python. Untuk menginstal atau mengupdate-nya, jalankan perintah
berikut di antarmuka command line Anda:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Langganan Google Workspace. Untuk membuatnya, lihat Membuat langganan.
Memerlukan autentikasi dan cakupan otorisasi yang sesuai untuk setiap jenis peristiwa dalam langganan:
- Untuk autentikasi pengguna, memerlukan satu atau beberapa cakupan yang mendukung setidaknya salah satu jenis peristiwa untuk langganan. Untuk mengidentifikasi cakupan, lihat Cakupan menurut jenis peristiwa.
- Untuk berlangganan peristiwa Chat sebagai aplikasi Chat, diperlukan autentikasi aplikasi dengan persetujuan administrator satu kali. Berlangganan ke peristiwa Chat sebagai aplikasi Chat tersedia di Pratinjau Developer.
Mengidentifikasi dan mengatasi error
Untuk mengidentifikasi error langganan, tinjau kolom suspensionReason
langganan. Anda dapat menemukan kolom ini saat menerima peristiwa siklus proses
tentang
penangguhan, atau dengan menggunakan
metode subscriptions.get
untuk meninjau semua kolom langganan.
Tabel berikut menampilkan kemungkinan error untuk langganan dan, jika memungkinkan, cara mengatasi error tersebut. Jika Anda tidak dapat menyelesaikan error, Anda dapat menghapus langganan, atau menunggu hingga langganan berakhir. Google Workspace Events API akan menghapus langganan yang sudah berakhir secara otomatis.
Error | Deskripsi | Cara mengatasi |
---|---|---|
|
Pengguna yang memberikan otorisasi telah mencabut pemberian satu atau beberapa cakupan OAuth yang diperlukan untuk langganan. | Dapatkan token akses lain. Untuk mengetahui detailnya, lihat Mendapatkan token akses dari Server Otorisasi Google. |
|
Resource target untuk langganan dihapus. | Jika resource dipulihkan, panggil metode reactivate . Jika tidak, Anda tidak perlu melakukan tindakan apa pun karena Anda tidak dapat mengaktifkan kembali langganan tanpa resource target aslinya. |
|
Pengguna yang memberikan otorisasi tidak lagi memiliki akses ke resource untuk langganan. | Tidak diperlukan tindakan. Anda tidak dapat mengaktifkan kembali langganan, karena pengguna yang mengizinkannya tidak dapat mengakses resource target. |
|
Aplikasi Google Workspace tidak memiliki akses untuk mengirimkan peristiwa ke notification endpoint Anda. | Memberikan akses ke akun layanan untuk aplikasi Google Workspace yang mengirimkan peristiwa. Akun layanan:
Untuk topik Pub/Sub, berikan peran Pub/Sub Publisher ( roles/pubsub.publisher)
) ke akun layanan. |
|
Endpoint notifikasi tidak ada atau tidak dapat ditemukan. | Pastikan endpoint masih aktif dan berfungsi. Untuk memecahkan masalah topik Pub/Sub, lihat dokumentasi Pemecahan masalah. |
|
Endpoint notifikasi gagal menerima peristiwa karena kuota tidak mencukupi atau mencapai pembatasan kapasitas. | Meminta penambahan kuota. |
|
Administrator domain telah mencabut pemberian satu atau beberapa cakupan OAuth untuk aplikasi Chat. | Menerima persetujuan administrator. |
|
Aplikasi Chat yang mengizinkan pembuatan langganan tidak lagi memiliki akses ke resource target langganan. | Dapatkan kembali akses ke resource target. Misalnya, jika target resource adalah ruang Chat, aplikasi Chat mungkin memerlukan keanggotaan di ruang tersebut. |
Mengaktifkan kembali langganan
Setelah menyelesaikan error yang menangguhkan langganan, Anda dapat menggunakan
metode reactivate
agar langganan dapat menerima peristiwa lagi. Metode ini
memeriksa bahwa semua error telah diselesaikan dan mengubah kolom state
langganan Anda dari SUSPENDED
menjadi ACTIVE
.
Untuk mengaktifkan kembali langganan Google Workspace:
Apps Script
Di project Apps Script Anda, buat file skrip baru bernama
reactivateSubscription
, lalu tambahkan kode berikut:function reactivateSubscription() { // The name of the subscription to reactivate. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.reactivate({}, name); console.log(response); }
Ganti kode berikut:
Untuk mengaktifkan kembali langganan Google Workspace, jalankan fungsi
reactivateSubscription
di project Apps Script Anda.
Python
Di direktori kerja Anda, buat file bernama
reactivate_subscription.py
dan tambahkan kode berikut:"""Reactivate subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) NAME = 'subscriptions/SUBSCRIPTION_ID' response = service.subscriptions().reactivate(name=NAME).execute() print(response)
Ganti kode berikut:
SCOPES
: Satu atau beberapa cakupan OAuth yang mendukung setiap jenis peristiwa untuk langganan. Diformat sebagai array string. Untuk mencantumkan beberapa cakupan, pisahkan dengan koma. Misalnya,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.SUBSCRIPTION_ID
: ID langganan. Untuk mendapatkan ID, Anda dapat menggunakan salah satu opsi berikut:
Di direktori kerja, pastikan Anda telah menyimpan kredensial client ID OAuth dan memberi nama file
credentials.json
. Contoh kode menggunakan file JSON ini untuk mengautentikasi dengan Google Workspace dan mendapatkan kredensial pengguna. Untuk mengetahui petunjuknya, lihat Membuat kredensial client ID OAuth.Untuk mengaktifkan kembali langganan Google Workspace, jalankan perintah berikut di terminal Anda:
python3 reactivate_subscription.py
Subscription
.
Jika permintaan gagal, lihat bagian berikut untuk memecahkan masalah error tambahan.
Mengaktifkan kembali langganan sebagai aplikasi Google Chat
Anda dapat mengaktifkan kembali langganan ke peristiwa Chat sebagai aplikasi Chat, bukan sebagai pengguna. Prosesnya serupa, kecuali:
Daripada autentikasi pengguna, lakukan autentikasi sebagai aplikasi Chat dengan persetujuan administrator satu kali.
Tentukan cakupan otorisasi yang memungkinkan aplikasi Chat berlangganan ke peristiwa Chat. Cakupan otorisasi ini selalu dimulai dengan
chat.app
, dan mencakup hal berikut:https://www.googleapis.com/auth/chat.app.memberships
: Berlangganan ke peristiwa anggota ruang Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: Berlangganan ke peristiwa pesan dan reaksi ruang Chat.https://www.googleapis.com/auth/chat.app.spaces
: Berlangganan ke peristiwa ruang Chat.
Membuat kunci API
Untuk memanggil metode Developer Preview API, Anda harus menggunakan versi pratinjau developer non-publik dari dokumen penemuan API. Untuk mengautentikasi permintaan, Anda harus meneruskan kunci API.
Untuk membuat Kunci API, buka project Google Cloud aplikasi Anda dan lakukan hal berikut:
- Di Konsol Google Cloud, buka Menu > APIs & Services > Credentials.
- Klik Create credentials > API key.
- Kunci API baru Anda akan ditampilkan.
- Klik Salin untuk menyalin kunci API Anda untuk digunakan dalam kode aplikasi Anda. Kunci API juga dapat ditemukan di bagian "API Keys" pada kredensial project Anda.
- Untuk mencegah penggunaan tanpa izin, sebaiknya batasi tempat dan API yang dapat menggunakan kunci API. Untuk mengetahui detail selengkapnya, lihat Menambahkan pembatasan API.
Menulis skrip yang memanggil Google Workspace Events API
Contoh kode berikut mengaktifkan kembali langganan Google Workspace aplikasi Chat:
Python
"""Reactivate subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = [SCOPES]
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
)
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = service.subscriptions().reactivate(name=NAME).execute()
print(response)
Ganti kode berikut:
SCOPES
: Tentukan cakupan otorisasi yang memungkinkan aplikasi Chat berlangganan ke peristiwa Chat. Cakupan otorisasi ini selalu dimulai denganchat.app
, dan mencakup hal berikut:https://www.googleapis.com/auth/chat.app.memberships
: Berlangganan ke peristiwa anggota ruang Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: Berlangganan ke peristiwa pesan dan reaksi ruang Chat.https://www.googleapis.com/auth/chat.app.spaces
: Berlangganan ke peristiwa ruang Chat.
API_KEY
: Kunci API yang Anda buat untuk membangun endpoint layanan untuk Google Workspace Events API.SUBSCRIPTION_ID
: ID langganan. Untuk mendapatkan ID, Anda dapat menggunakan salah satu hal berikut:
Memecahkan masalah beberapa error
Jika Anda telah mengatasi error yang menangguhkan langganan dan metode
reactivate
gagal, error lain mungkin terjadi setelah langganan Anda ditangguhkan.
Untuk mengidentifikasi error tambahan, tinjau output dari permintaan yang gagal. Output berisi error yang masih ada.
Jika langganan Anda memiliki beberapa error, nilai untuk kolom suspensionReason
akan selalu menggunakan error asli yang menangguhkan langganan Anda.