การใช้ FCM V1 API ใน Python อย่างง่ายดาย
Dec 05 2022
เฮ้ทุกคน. ดังที่คุณทราบอีกต่อไป เมื่อคุณสร้างโครงการ fcm ใหม่ คุณจะไม่สามารถใช้ API เดิมได้
เฮ้ทุกคน. ดังที่คุณทราบอีกต่อไป เมื่อคุณสร้างโครงการ fcm ใหม่ คุณจะไม่สามารถใช้ API เดิมได้ คุณต้องใช้ V1 API เท่านั้น และไม่มีเอกสารหรือบทความโดยละเอียดในบทความสำหรับการตั้งค่านี้ด้วยวิธีที่สั้นและสะดวก ดังนั้นหลังจากดิ้นรนอย่างหนักและจบโปรเจ็กต์ด้วย API ใหม่นี้ ฉันจึงตัดสินใจไม่ใช้ SDK เพราะมันใช้เวอร์ชัน JWT ซึ่งโปรเจ็กต์ของฉันไม่ยอมรับ จากนี้ไป เราจะดำเนินการต่อด้วย API เองแบบดิบๆ
รับไฟล์กำหนดค่า
หลังจากสร้างโครงการ FCM แล้ว ให้ไปที่การตั้งค่าโครงการแล้วเลือกบัญชีบริการ จากนั้นสร้างคู่คีย์ใหม่และจัดเก็บไว้ในแพลตฟอร์มของคุณ
หลังจากดาวน์โหลดไฟล์ JSON แล้ว คุณสามารถคัดลอกและจัดเก็บไว้ในสภาพแวดล้อมของคุณ เช่น ห้องนิรภัย จากนั้นใช้เพื่อตรวจสอบสิทธิ์และรับโทเค็นการเข้าถึงจาก FCM API คุณได้รับโทเค็นการเข้าถึงในรหัส
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)





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)