微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FCM Python SDK - 请求包含无效参数

如何解决FCM Python SDK - 请求包含无效参数

对于我的移动应用程序(Android 和 iOS),我使用 Firebase Cloud Messaging (FCM) 来推送通知

我的后端服务器使用 FCM Admin Python SDK 将通知发送到特定设备以及一些附加数据。负责发送通知代码如下:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import messaging

cred = credentials.Certificate('cert.json')
firebase_admin.initialize_app(cred)

def sendNotification(token,sessionId,authenticationUrl,deviceid):
    # This registration token comes from the client FCM SDKs.
    registration_token = token

    message = messaging.Message(
        token=registration_token,data={
            'sessionId': sessionId,'authenticationUrl': authenticationUrl,'deviceid': deviceid
        },android=messaging.AndroidConfig(ttl=0,priority='high'),apns=messaging.APNSConfig(
            headers={'apns-priority': '10'},payload=messaging.APNSPayload(
                aps=messaging.Aps(content_available=True)
            )
        )
    )

    # Send a message to the device corresponding to the provided registration token.
    try:
        response = messaging.send(message)
        print('Successfully sent message:',response)
    except Exception as e:
        print(e)

之前,我也将以下内容作为 Aps 对象的一部分,但我删除了它,因为现在移动应用程序生成消息和正文(取决于移动语言):

alert=messaging.ApsAlert(title='Authentication Request',body='Would you like to authenticate?')

自从删除 ApsAlert 后,上面的代码随机失败并报错:

请求包含无效参数。

如果我在没有任何更改的情况下再次调用相同的函数,它会在几次尝试后成功,但在某些运行中再次失败。没有常见的模式导致此失败。

有什么方法可以让我获得更多有关错误的信息以解决它? 也许,这是无效的论点。

更新

根据@Hiranya 的评论,我添加了一些错误处理,并且我能够确定它返回“无效争论”的争论。

它对 registration_token 这样做,但有趣的是,在失败和成功的连续运行期间,令牌永远不会被修改

所以,仍然没有关于这种行为的线索。

信息:

  • Python 版本:3.8
  • firebase-admin 版本:4.5.2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?