Простое использование API FCM V1 в Python
Всем привет. Как вы знаете, когда вы создаете новый проект 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)



































