This is a simple adapter for the FCM (Firebase Cloud Messaging) service.
pip install fcm_adapter
poetry add fcm_adapter
from fcm_adapter import FCMAdapter
import json
async def main(token: str):
with open('key.json') as f:
key = json.load(f)
fcm_adapter = FCMAdapter(key)
await fcm_adapter.send_message(
{
"token": token,
"notification": {"title": "Hello World"},
}
)
key: dict
- Google key. You can get it from the Firebase Console. Documentation here.client: Union[httpx.AsyncClient, None] = None
- httpx.AsyncClient instance. If not provided, a new instance will be created.send_message_url: Union[str, None] = None
- FCM send message url. If not provided, the default value will be used.validate_only: bool = False
- Flag for testing the request without actually delivering the message. Works only with thesend_message
method.
Send a message to a device. See FCM documentation for more details.
data: dict
- Data to send to FCM service.
- Response from FCM service. See FCM documentation for more details.
from fcm_adapter import FCMAdapter
async def main(fcm_adapter: FCMAdapter, token: str):
response = await fcm_adapter.send(
{
"validate_only": False,
"message": {
"token": token,
"notification": {"title": "Hello World"},
},
}
)
Send a message to a device. The function is a wrapper around the send
method,
but it expects to receive only inner message data.
If fcm_adapter.validate_only
is set to True
,
the request to FCM will be sent with "validate_only": true
.
message: dict
- Message data to send to FCM service.
- Response from FCM service. See FCM documentation for more details.
from fcm_adapter import FCMAdapter
async def main(fcm_adapter: FCMAdapter, token: str):
response = await fcm_adapter.send_message(
{
"token": token,
"notification": {"title": "Hello World"},
}
)
First, install poetry.
Then, install dependencies:
poetry install
poetry run black .
poetry run pytest