从 Firebase 云消息传递获取 "InvalidTokenFormat, Error 400"

Getting "InvalidTokenFormat, Error 400" from Firebase Cloud Messaging

我使用 Firebase Cloud Messaging 进行 android 开发,使用 PHP 作为服务器端语言。现在,我能够:

  1. 使用真实应用程序和模拟器接收使用 Firebase 控制台发送的推送通知。

  2. 从终端(curl)测试它时得到它的工作

然后,我尝试从 apps server(使用 php curl)而不是 Firebase Console 发送。现在,每次我请求 POST 请求时,都会遇到这个奇怪的消息 InvalidTokenFormat, Error 400。有什么想法吗?

这是为 Firebase Api 制作的 link:FirebaseApi Class

如果上面的用例不够清楚,请随时向我询问任何意见。谢谢。

您需要从您的服务器向 firebase 发送带有通知消息和用户令牌的请求,然后 firebase 将接受请求并以以下形式向所有用户(我们提供的令牌)广播消息一个通知。

Firebase 和设备在投票模型上工作,因此只有 firebase 可以在您的设备上发送通知,您可以使用设备设置您的投票,但 google 不允许这样做,因为如果每个应用程序开始制作与设备的轮询隧道,它将占用大量资源。

我的错误。 url 应该是(末尾没有斜杠):

https://fcm.googleapis.com/fcm/send

你能Post curl 发送到服务器的原始请求吗?通常 curl 会为此提供打印输出,不确定 php 版本。

CURLOPT_POSTFIELDS 不想要 JSON。如果你想发送一个 application/x-www-form-urlencoded 请求,使用 http_build_query($message) ,或者如果你想发送一个 multipart/form-data 请求,直接给它 $message 数组。