背景
我正在尝试通过主题在我的android应用程序中实现推送通知(我的目标用户每次5千)。出于上述目的,我正在使用firebase云消息传递。
我的android应用程序是用firebase安装的,我可以通过firebase web控制台成功发送推送通知(firebase云消息)。(这是测试阶段)
为了使用户友好,我想利用Firebase API并打算开发一个web控制台(基于PHP),从中可以发送这些通知。我需要从那里调用firebase API路由。
目前,我正在使用发送通知消息的邮递员测试Firebase API路由。
API请求经过身份验证,它需要两个身份验证参数
我已经成功地验证了API请求,并且邮递员也成功地发送了通知。
问题
从Google Oauth Playground创建的授权承载通常称为访问令牌,过期时间很短(5分钟)。访问令牌最多可以有60分钟的过期时间。
POST请求URL
https://fcm.googleapis.com/v1/projects/fir-notificationsdemo-6996c/messages:发送
标题
内容类型:应用程序/json授权:承载ya29.ElqKBGN2Ri_Uz…HnS_unra
正文(json)
{
"message" :{
"topic": "employees",
"notification" : {
"title": "Notification: Title of Your Notification",
"body" : "Notification: Body of Your Notification" ,
"image": "image url here"
}
}
}
下面是该POST请求的相应PHP Curl
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://fcm.googleapis.com/v1/projects/fir-notificationsdemo-6996c/messages:send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"message" :{
"topic": "employees",
"notification" : {
"title": "Notification: Title of Your Notification",
"body" : "Notification: Body of Your Notification" ,
"image": "https://www.imageurl.goeshere/media/2020/10/07.jpg"
}
}
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer ya29.a0AfH6SMBB.......e8-3'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Oauth游乐场还提供刷新令牌和访问令牌。我需要在访问令牌过期时设置一个机制,刷新令牌用于获取新令牌。或者如果有其他方法可以做到这一点。
谢谢你
注:我没有使用Firebase遗留API,而是使用首选的Firebase HTTP v1 API。旧式API不需要Oauth访问令牌。[1]: https://developers.google.com/oauthplayground/
我在Github上找到了EdwinHoksberg php fcm存储库,达到了这个目的。
Github repo链接:EdwinHoksberg php fcm Github存储库
文档:快速入门文档
GitHub上还有许多其他类似的存储库,它们都可以达到这个目的,但这一个包含了全面的文档。
虽然提到它使用HTTP v1而不是传统的API,但此回购不需要oauth访问密钥。
我现在已经在我的应用程序中设置了Firebase通知,当我发送消息时,消息会发送给我的应用程序的所有用户。(我目前通过Firebase控制台发送消息。我想用另一种不涉及Firebase控制台的方式发送推送通知,我相信HTTP Post是一种简单的方式。如何使用HTTP POST远程发送推送通知?
我正在尝试为Web设置Firebase云消息传递。我成功地对其进行了正确初始化并获得了令牌: manifest.json与gcm_sender_id 我可以看到我在控制台中得到令牌,所以我试图验证它,并通过邮递员发送我的第一个通知-这里是留档。 发布网址:https://fcm.googleapis.com/v1/projects/PROJECTID/messages:发送授权:无授权 标题 Bo
我试图使用Vapor 1.5和Firebase遗留协议向Firebase Notifications API发出POST请求,但收到失败响应。 编辑通过邮递员发出请求失败,错误为“请求缺少身份验证密钥(FCM令牌)”
我正在研究使用从旧的Google云消息传递应用程序迁移的Firebase云消息传递向项目发送消息的可能性。 旧应用程序仅使用CURL和应用程序在我的服务器上的唯一GCM API密钥从php网页向Android设备发送消息。 因此,每个android设备只需注册代码,例如: 让 Google 服务器使每台设备都可单独寻址。(注册表存储在我的服务器上的MySql数据库中,因此我知道要处理哪个设备。 A
我正在尝试使用Postman通过云消息服务发送一次推送通知。 这是一个用于相同目的的工作命令,我将其用作参考。 到目前为止我所做的。。 1-适当设置标题 2-在Body,我使用 执行时,我返回
我使用此代码通过C#与GCM发送通知消息,使用Winform,Webform,无论什么。现在我想发送到FCM(Firebase云消息传递)。我应该更新我的代码吗?: 但GCM改为FCM。发送通知的代码是否相同?在哪里可以找到服务器API密钥?是相同的解决方案吗?