Python'da FCM V1 API'yi kolayca kullanma
Selam millet. Artık bildiğiniz gibi, yeni bir fcm projesi oluşturduğunuzda eski API'yi kullanamazsınız. Yalnızca V1 API kullanmanız gerekir. Ve bunu kısa ve kolay bir şekilde ayarlamak için makalede ayrıntılı bir belge veya makale yoktur. Bu yüzden çok uğraştıktan ve projeyi bu yeni API ile bitirdikten sonra, projemin kabul etmediği JWT sürümünü kullandığı için SDK kullanmamaya karar verdim. Yani bundan sonra API'nin kendisi ile ham bir şekilde devam edeceğiz.
Yapılandırma Dosyasını Alın
FCM Projenizi oluşturduktan sonra, Proje ayarlarınıza gidin ve Hizmet hesapları'nı seçin, ardından yeni anahtar çifti oluşturun ve bunu platformunuzda saklayın.
JSON dosyasını indirdikten sonra kopyalayıp kendi ortamınızda saklayabilirsiniz, örneğin Vault. Ardından, kimlik doğrulaması yapmak ve FCM API'sinden erişim belirteçleri almak için kullanın. Kodlarda bir erişim belirteci alırsınız.
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)

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































