首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase Cloud Messaging PHP

Firebase Cloud Messaging PHP
EN

Stack Overflow用户
提问于 2020-02-12 19:55:49
回答 2查看 880关注 0票数 0

我正在尝试向使用Google Firebase Cloud和PHP的特定人员发送消息。接收消息的人的令牌存储在DB中。下面是我的代码:

代码语言:javascript
复制
define('SERVER_API_KEY','MYSERVERAPIKEY');
define('FRIEND_TOKEN','FRIEND_TOKEN')

$message = array(
    'title'=>'Bet invitation',
    'body' =>'Notification from ...',
);
$url = 'https://fcm.googleapis.com/fcm/send'; 
$fields = array(
    'registration_ids' => FRIEND_TOKEN,
    'data' => $message
);
$headers = array(
    'Content-Type: application/json',
    'Authorization: key='.SERVER_API_KEY
);

$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));

$result = curl_exec($ch);
if ($result === FALSE) {
    die('FCM Send Error: ' . curl_error($ch));
}
echo "Result: $result";
echo "Curl: ". curl_error($ch);
curl_close($ch);

问题是指定的用户没有收到消息。当我通过Firebase控制台测试它时,它工作...然而,奇怪的是,错误消息也没有显示给我:(

EN

回答 2

Stack Overflow用户

发布于 2020-02-12 20:41:42

尝试下面的代码,希望它能有所帮助。

代码语言:javascript
复制
$message=[
    'title'=>'Bet invitation',
    'body' =>'Notification from ...',
];

$send = $this->GoogleCloudMessaging($friend_token,$message);
echo $send;
票数 0
EN

Stack Overflow用户

发布于 2020-02-13 17:21:17

现在我自己找到了问题所在。我在manifest.json文件中添加了"gcm_sender_id": "YOUR_FIREBASE_PROJECT_SENDER_ID"并重写了脚本,下面是解决方案:

代码语言:javascript
复制
define('SERVER_API_KEY', 'MYSERVERAPIKEY');

$data = array(
   "to" => "$RECIVER_TOKEN",
   "notification" => array(
       "title" => "Test-Title",
       "body" => "Test-Message",
       "icon" => "https://url/images/iamge.png",
       "click_action" => "https://url")
    );

$headers = array(
    'Content-Type: application/json',
    'Authorization: key=' . SERVER_API_KEY
);
$url = 'https://fcm.googleapis.com/fcm/send';

$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, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = curl_exec($ch);
if ($result === FALSE) {
   die('FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);

致: ashokan,David Angulo和https://santhoshveer.com/web-push-notification/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60187798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档