Menggunakan FCM V1 API dengan Python dengan mudah
Hai semuanya. Seperti yang Anda ketahui lagi saat membuat proyek fcm baru, Anda tidak dapat menggunakan API lama. Anda hanya perlu menggunakan API V1. Dan itu tidak memiliki dokumentasi atau artikel terperinci dalam artikel untuk mengaturnya dengan cara yang singkat dan nyaman. Jadi setelah banyak berjuang dan menyelesaikan proyek dengan API baru ini, saya memutuskan untuk tidak menggunakan SDK karena menggunakan versi JWT yang tidak diterima oleh proyek saya. Jadi mulai sekarang, Kami akan melanjutkan dengan API itu sendiri secara mentah.
Dapatkan File Konfigurasi
Setelah membuat Proyek FCM, buka pengaturan Proyek dan pilih Akun layanan, lalu buat pasangan kunci baru dan simpan di platform Anda.
Setelah mengunduh file JSON, Anda dapat menyalin dan menyimpannya di lingkungan Anda misalnya Vault. Kemudian gunakan untuk mengautentikasi dan mendapatkan token akses dari FCM API. Anda mendapatkan token akses dalam kode.
creds = {} # Your credentials dict that you installed above
scopes = ['https://www.googleapis.com/auth/firebase.messaging']
cred_service = ServiceAccountCredentials.from_json_keyfile_dict(creds, scopes)
access_token = cred_service.get_access_token().access_token
headers = {
'access_token_auth':'true',
'Authorization':f'Bearer {access_token}'
}
# For subscribing to topic
response = requests.post('https://iid.googleapis.com/iid/v1:batchAdd',headers=headers,
json={
"to":f"/topics/your_topic",
"registration_tokens":[user_fcm_token]
}
)
# For unsubscribing from topic
response = requests.post('https://iid.googleapis.com/iid/v1:batchRemove',headers=headers,
json={
"to":f"/topics/your_topic",
"registration_tokens":[user_fcm_token]
}
)
# project_id is in credentials file you have downloaded
base_url = f'https://fcm.googleapis.com/v1/projects/{project_id}/messages:send'
headers = {'Authorization': 'Bearer ' + access_token}
data = {
"message": {
"topic": f'user_push_{topic}',
"notification": {
"title": title,
"body": description
},
"webpush": {
"fcm_options": {
"link": url
}
},
"data": {}
}
}
resp = requests.post(base_url, json=data, headers=headers)

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































