Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获得;InvalidTokenFormat,错误400“;来自Firebase云消息传递_Php_Android_Curl_Firebase_Firebase Cloud Messaging - Fatal编程技术网

Php 获得;InvalidTokenFormat,错误400“;来自Firebase云消息传递

Php 获得;InvalidTokenFormat,错误400“;来自Firebase云消息传递,php,android,curl,firebase,firebase-cloud-messaging,Php,Android,Curl,Firebase,Firebase Cloud Messaging,我正在使用Firebase云消息进行android开发,并使用PHP作为服务器端语言。现在,我能够: 使用Firebase控制台接收推送通知发送,包括real apps和emulator 从终端(curl)测试时使其正常工作 因此,我尝试从apps服务器(使用php curl)而不是Firebase控制台发送。现在,每次我请求POST请求时都会遇到这个奇怪的消息InvalidTokenFormat,错误400。有什么想法吗 以下是Firebase Api的链接: 请随意询问meif的任何输入,上

我正在使用
Firebase云消息
进行android开发,并使用
PHP
作为服务器端语言。现在,我能够:

  • 使用Firebase控制台接收推送通知发送,包括real apps和emulator

  • 从终端(curl)测试时使其正常工作

  • 因此,我尝试从
    apps服务器
    (使用php curl)而不是
    Firebase控制台
    发送。现在,每次我请求POST请求时都会遇到这个奇怪的消息
    InvalidTokenFormat,错误400
    。有什么想法吗

    以下是Firebase Api的链接:


    请随意询问meif的任何输入,上面的用例不够清楚。谢谢。

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


    Firebase和设备在轮询模式下工作,因此只有Firebase可以在您的设备上发送通知,您可以使用该设备设置轮询,但google不允许这样做,因为如果每个应用程序都开始使用该设备创建轮询通道,这将占用大量资源。

    我的错误。url应为(末尾不带斜杠):


    您可以将curl发送的原始请求发布到服务器吗?通常,curl会为此提供打印输出,但不确定php版本。

    CURLOPT_POSTFIELDS不需要JSON。如果要发送应用程序/x-www-form-urlencoded请求,请使用http\u build\u query($message),或者如果要发送多部分/表单数据请求,请直接为其提供$message数组。

    也许您在
    php curl
    中缺少了一些内容!(授权令牌)@IsmailRBOUH您的意思是
    Authorization:key=some key
    header?是的,类似的东西,您可以添加您的curl请求吗?@IsmailRBOUH
    FirebaseApi类
    -文件中的所有内容。
    init()方法体中的curl代码。为了发出请求,我刚刚启动了
    FirebaseApi
    类并调用
    init()
    method确保您在PHP代码中使用的是服务器密钥,而不是Android密钥,但在FCM情况下,它确实需要
    application/json
    头和
    json
    数据,因为我选择
    application/json
    而不是
    text
    @NorlihazmeyGhazali哦,那么我想你应该使用CURLOPT_infle/CURLOPT_READFUNCTION,而不是CURLOPT_POSTFIELDS
    https://fcm.googleapis.com/fcm/send