C# 中的离子推送通知 api

本文关键字:通知 api | 更新日期: 2023-09-27 18:30:32

所以基于 Tom Raz 在 c# 中使用 WebAPI 发布离子推送通知 api。我尝试实现一种使用 ionic 推送通知 api 发送推送通知的方法,这是我的代码:

    public void sendToIonic(string regId, string msg) {
        using (var client = new HttpClient())
        {
            string data = "{ '"user_ids'":['" "+ regId + "'"],'"notification'":{'"alert'":'" "+ msg + "'"}}";
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(data);
            client.BaseAddress = new Uri("https://push.ionic.io/api/v1/push");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Add("X-Ionic-Application-Id", "1d74b1f2");
            var keyBase64 = "Basic %s" + "53a03dc7d9ce58511263e40580294f62af36b89be7cc4db2";
            client.DefaultRequestHeaders.Add("Authorization", keyBase64);
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://push.ionic.io/api/v1/push");
            request.Content = new StringContent(data, Encoding.UTF8, "application/json");
            var response = client.SendAsync(request).Result;
        }
    }

但我不断得到回应error 403 Forbidden;.这是完整的响应:

{状态代码: 403, 原因短语: '禁止', 版本: 1.1, 内容: System.Net.Http.StreamContent, 标头: { 连接:保持活动状态 访问控制允许来源: * 访问控制允许标头:源、X 请求者、内容类型、接受 日期:2016 年 1 月 15 日星期五 20:50:33 GMT ETag: W/"35-nGlZv/eC8CyS+KJzQ1P9rg" 服务器:牛仔 通过: 1.1 蔬菜 X-供电者:快递 内容长度:53 内容类型:应用程序/json;字符集=UTF-8 }}

不知道出了什么问题。我被困住了。任何帮助将不胜感激。

C# 中的离子推送通知 api

var keyBase64 = "Basic %s" + "..."

%s 这是在 Python 中连接。 您需要转换为 Base64

您可以使用

client.DefaultRequestHeaders.Add("X-Ionic-Application-Id", "1d74b1f2");
var IONIC_PRIVATE_KEY_BASE_64 = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("53a03dc7d9ce58511263e40580294f62af36b89be7cc4db2:")); // ends with two points
var keyBase64 = "Basic " + IONIC_PRIVATE_KEY_BASE_64 ;
client.DefaultRequestHeaders.Add("Authorization", keyBase64);

http://docs.ionic.io/docs/push-sending-push#section-authenticating-your-requests