当前位置: 首页 > 知识库问答 >
问题:

为什么Google Firebase云消息服务器返回临时移动?

窦伟
2023-03-14

这是我编写的获取并尝试发送推送通知的内容:

<?php
    //send FCM notification
    $fcmToken = "My device token";

    $fcmKey = "My Firebase Cloud Messaging Server Key";

   //I tried curl like this but I  barely understand it and it wouldn't work
    //curl -X POST --header "Authorization: key=$fcmKey" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"$fcmToken\",\"notification\":{\"body\":\"Yellow\"},\"priority\":10}"

    echo "starting curl <hr>";      
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send");
    curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: key=$fcmKey","Content-Type: application/json","to: $fcmToken","notification:{\"body\":\"Yellow\"}","priority: 10" )); //setting custom header
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($curl);
    echo "curlResult: " . $result;
    curl_close($curl);
    echo "<hr>curl end";    
?>

我得到的结果是这样的,为什么

starting curl <hr>curlResult: <HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://firebase.google.com/docs/cloud-messaging/http-server-ref">here</A>.
</BODY>
</HTML>
<hr>curl end

提前感谢您的帮助!

共有1个答案

叶阳
2023-03-14

我不确定到底是什么造成了这种差异,但我最终还是按照这篇文章的答案去做了:Firebase云消息,接收通知的问题

为了保存,它是这么说的:

<?php 
function send_notification ($tokens)
{

    $url = 'https://fcm.googleapis.com/fcm/send';
    $priority="high";
    $notification= array('title' => 'Some title','body' => 'hi' );

    $fields = array(
         'registration_ids' => $tokens,
         'notification' => $notification

        );


    $headers = array(
        'Authorization:key=xxxxxxxxxxxxx',
        'Content-Type: application/json'
        );

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_POST, true);
   curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);  
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
    // echo json_encode($fields);
   $result = curl_exec($ch);           
   echo curl_error($ch);
   if ($result === FALSE) {
       die('Curl failed: ' . curl_error($ch));
   }
   curl_close($ch);
   return $result;
}
$tokens = array('RECEIVER-TOKEN-1'
    ,'RECEIVER_TOKEN-2');

$message_status = send_notification($tokens);
echo $message_status;
 类似资料:
  • 我只有配置和Spring Security性 登录实现UserDetailsService loginUser用于会话信息 谢谢你阅读。

  • 是否有任何API(Python、JS、...)可用于生成和检索Firebase云消息传递服务器令牌? 最终目标应与单击“项目设置”中的“添加服务器密钥”按钮相同。

  • 在上面的图片中显示了服务器密钥和旧服务器密钥,其中一个我必须使用。有人知道这两者有什么区别吗? 谢啦

  • 我已经从Firebase中导入的Google项目中删除了名为Server key(由Google Service自动创建)的api密钥。 现在,项目设置中的字段服务器密钥-云消息传递为空。我也不能发送通知,我从服务器上得到一个未经授权的401错误。 我能做什么?

  • 我在Android和iOS应用程序中使用FCM。客户端代码工作正常,因为我可以从Firebase控制台向两个平台发送通知,而不会出现任何问题。通过我的C#代码,我可以成功地将通知发送到android设备,但除非直接来自Firebase通知控制台,否则通知永远不会出现在iPhone上。我不知道是什么给你的。 C#服务器端代码 我的服务器端代码无法在iPhone上运行通知,但Firebase对此做出了

  • 问题内容: 我在C#(.ashx文件)中编写JSON服务。在成功请求服务后,我返回了一些JSON数据。如果请求失败,要么是由于引发异常(例如,数据库超时),要么是因为请求在某种程度上是错误的(例如,将数据库中不存在的ID用作参数),服务应该如何响应?哪些HTTP状态代码是明智的,是否应该返回任何数据? 我预计该服务将主要使用jQuery.form插件从jQuery调用,jQuery或此插件是否具有