Python - 通过FCM / APNs向iOS或Android设备发送推送通知

3

我正在开发我的Python项目,我需要创建自己的APNS和FCM/GCM推送通知服务器,可以同时向iOS和Android发送推送通知。我已经查看了Firebase文档,但是网站上没有代码示例。有人能给我一个Python代码完成这个功能的想法吗?

1个回答

2

我曾经为此苦苦挣扎,所以我想发布最终适用于我的代码。你需要做的就是从Google进行oauth2client的pip安装(https://github.com/google/oauth2client):

pip install oauth2client

现在,您需要导入服务帐户,该帐户将为您生成一个短暂的令牌,您可以在API中使用该令牌,以便您的应用程序服务器可以与FCM Google服务器通信。

按照以下网站的说明操作:

https://firebase.google.com/docs/cloud-messaging/auth-server

from oauth2client.service_account import ServiceAccountCredentials

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', FCM_SCOPE)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

现在,一旦您获得了短期令牌,您就可以在API调用中使用它来向您的Android / IOS设备发送消息:
import requests, json
values = {"message":{"token":"<insert android firebase token id here>","notification":{"body":"This is a Firebase Cloud Messaging Topic Message for testing!","title":"FCM Message!!"}}}
header ={ 'Content-Length': '33333', 'Content-Type': 'application/json; UTF-8', 'Authorization': 'Bearer ' + _get_access_token(), 'User-Agent': 'Mozilla/5.0'}
url = 'https://fcm.googleapis.com/v1/projects/<insert project name here>/messages:send'
print(header)
r = requests.post(url, data=json.dumps(values), headers=header)
print(r.text)

如果调用成功,您将在屏幕上收到一条打印信息,其中包含您刚发送的 FCM 消息的引用。
{
  "name": "projects/<your project name>/messages/0:1519633952417262%0958967209589672"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接