gpt4 book ai didi

ios - 如何在不使用 Firebase 控制台的情况下向 iOS 设备发送 Firebase 云消息传递通知?

转载 作者:行者123 更新时间:2023-12-05 07:48:23 27 4
gpt4 key购买 nike

如果我从 FCM 控制台向 iOS 设备发送通知,我会在通知中心收到消息警报(从屏幕顶部向下滑动以查看通知中心)。

didRecievedRemoteNotification 输出是:

{

aps = {

alert = "From console";

};

"gcm.message_id" = "0:1470206236110595%b2c76869b2c76869";

"gcm.n.e" = 1;

"google.c.a.c_id" = 2979094970349938289;

"google.c.a.e" = 1;

"google.c.a.ts" = 1470206236;

"google.c.a.udt" = 0;

}

但是,如果向 iOS 设备发送通知,我正在使用来 self 的服务器的 api 发送我没有在通知中心收到消息提醒(从屏幕顶部向下滑动以查看通知中心)。

didRecievedRemoteNotification 输出是:

{

"collapse_key" = "do_not_collapse";

from = 67981113117;

message = "alert from api";

time = "03-08-2016 12:44:53";

}

我的 API 代码是在 C# 中:

string RegIDs = "some id";





var appID = "some id";


var SenderID = "some id";
var value = Text1.Text;
WebRequest tRequest;



tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");

tRequest.Method = "POST";
tRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
tRequest.Headers.Add(string.Format("Authorization: key={0}", appID));

tRequest.Headers.Add(string.Format("Sender: id={0}", SenderID));


//Data_Post Format
// string postData = "{'collapse_key' : 'demo', 'registration_id': [ '" + regId + "' ],
//'data': {'message': '" + Label1.Text + "'},'time_to_live' : '3' }";

//json for android
string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message="
+ value + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + RegIDs + "";



Console.WriteLine(postData);
Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
tRequest.ContentLength = byteArray.Length;

Stream dataStream = tRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();

WebResponse tResponse = (WebResponse)tRequest.GetResponse();


dataStream = tResponse.GetResponseStream();

StreamReader tReader = new StreamReader(dataStream);

String sResponseFromServer = tReader.ReadToEnd();

Label3.Text = sResponseFromServer; //printing response from GCM server.
tReader.Close();
dataStream.Close();
tResponse.Close();

最佳答案

为了在不使用 Firebase 控制台的情况下测试推送通知,另一种替代方法是使用 Postman。附上两张带有配置详细信息的图片。

图 1:设置通知负载 enter image description here

图 2:设置请求 header (内容类型和授权) enter image description here

Firebase 推送通知端点:https://fcm.googleapis.com/fcm/send

关于ios - 如何在不使用 Firebase 控制台的情况下向 iOS 设备发送 Firebase 云消息传递通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com