c#中的离子推送通知api

Posted

技术标签:

【中文标题】c#中的离子推送通知api【英文标题】:Ionic push notification api in c# 【发布时间】:2016-01-15 21:47:44 【问题描述】:

因此基于 Tom Raz 的帖子 Ionic push notification api in c# with WebApi。我尝试实现一种使用离子推送通知 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;。这是完整的回复:

StatusCode:403,ReasonPhrase:'Forbidden',版本:1.1,内容:System.Net.Http.StreamContent,标头: 连接:保持活动 访问控制允许来源:* Access-Control-Allow-Headers:Origin、X-Requested-With、Content-Type、Accept 日期:格林威治标准时间 2016 年 1 月 15 日星期五 20:50:33 ETag:W/“35-nGlZv/eC8CyS+KJzQ1P9rg” 服务器:牛仔 通过:1.1 vegur X-Powered-By: Express 内容长度:53 内容类型:应用程序/json;字符集=utf-8

不确定是什么问题。我被困住了。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:
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

【讨论】:

以上是关于c#中的离子推送通知api的主要内容,如果未能解决你的问题,请参考以下文章

离子推送通知实现

存储推送通知的最佳做法是啥?离子 3

离子推送通知点击功能

如何使用一个信号向离子和电容器推送通知添加自定义声音

离子推送通知应用程序

在离子完整示例中使用 FCM for android 推送通知