2016-07-30 31 views
1

我使用Firebase Cloud Messaging作为我的Android开发,PHP作为服务器端语言。现在,我能够:从Firebase云消息传递获取“InvalidTokenFormat,Error 400”

  1. 接收推送通知使用火力地堡控制台不是都是真实的应用和仿真器发送。

  2. 得到了终端(卷曲)测试它时,它的工作

那么,我试图从apps server发送(使用PHP卷曲)而不是Firebase Console。而现在,每当我要求POST请求时,都会遇到这个奇怪的消息InvalidTokenFormat, Error 400。任何想法?

这里是链接,火力地堡阿比作了:FirebaseApi Class

可以随时从meif要求任何输入上面使用的情况下没有足够清晰的。谢谢。

+0

也许你错过了'php curl'中的东西! (AutorizationToken)?! –

+0

@IsmailRBOUH你的意思是'授权:密钥=一些密钥'标题? –

+0

是的,您可以添加您的卷发请求吗? –

回答

8

我的错误。该网址应该是(没有在最后的斜线):

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

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

Firebase和设备在轮询模式下工作,因此只有Firebase可以在设备上发送通知,您可以使用设备设置您的轮询,但谷歌不允许这样做,因为如果每个应用都开始与设备,它会占用大量的资源。

+0

是的,我做到了。但得到了这些错误 –

0

你可以发布原始请求curl发送到服务器?通常curl确实提供了打印输出,不知道有关php的版本。

+0

已经解决了这个问题 –

0

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

+0

事实上,但在FCM的情况下,它确实需要'application/json'头和'json'数据,因为我选择'application/json'而不是'text' –

+0

@NorlihazmeyGhazali哦,那么我认为*你应该使用CURLOPT_INFILE/CURLOPT_READFUNCTION,而不是CURLOPT_POSTFIELDS – hanshenrik

+0

谢谢,将检查出来 –

相关问题