c# - 如何将特定用户添加到 OneSignal 中的段

标签 c# android onesignal

我正在为 Android 应用程序开发 C#.NET MVC Web Api。目前,我正在使用 OneSignal 通过调用 OneSignal Api 并传递通知内容来向用户发送推送通知。我需要知道如何将用户添加到特定分割,以便我可以向单个用户以及该分割的用户集体发送通知。我搜索了他们的文档,但我不明白如何使用 OneSignal.SendTag 方法进行操作。那么基本上如何在 Visual Studio 中完成呢?到目前为止,我已经这样做了:

string api_key = "dsabjd";
        var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest;
        if (user != null)
        {
            string message = "This job is posted by: \n" + user.Name + "\n" + user.Contact + "\n" +user.City;
            if (request != null)
            {
                request.KeepAlive = true;
                request.Method = "POST";
                request.ContentType = "application/json";

                request.Headers.Add("authorization", "Basic "+api_key);


                var serializer = new JavaScriptSerializer();
                var obj = new
                {
                    app_id = "1651",
                    contents = new { en = message },
                    //data = new { image = "http://dsadasdasd.png" },
                    data = new { image = imageUrl },
                    included_segments = new string[] { "All" }
                };
                var param = serializer.Serialize(obj);
                byte[] byteArray = Encoding.UTF8.GetBytes(param);

                try
                {
                    using (var writer = request.GetRequestStream())
                    {
                        writer.Write(byteArray, 0, byteArray.Length);
                    }

                    string responseContent=null;
                    using (var response = request.GetResponse() as HttpWebResponse)
                    {
                        using (var reader = new StreamReader(response.GetResponseStream()))
                        {
                            responseContent = reader.ReadToEnd();
                        }
                    }
                    if (responseContent != null)
                    {
                        // parsing the json returned by OneSignal Push API 
                        dynamic json = JObject.Parse(responseContent);
                        int noOfRecipients = json.recipients;
                        if (noOfRecipients > 0)
                        {
                            flag = true;
                        }
                    }

                }
                catch (WebException ex)
                {
                    flag = false;
                }


            }
        }

最佳答案

要设置标签,建议您使用 sendTags从您应用中的 OneSignal Android SDK,它支持离线并为您处理重试。

如果您需要针对个人用户,建议调用 idsAvailable在您的应用程序中并将其发送到您的服务器。您稍后可以使用 create notification 上的 include_player_ids 字段REST API POST 调用以向用户列表发送通知。

关于c# - 如何将特定用户添加到 OneSignal 中的段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37783159/

相关文章:

c# - 事件处理程序中的 "reentrant call to SetCurrentCellAddressCore"- 仅当单元格行索引和列索引相等时

android - 为什么 API 在 ipv6 协议(protocol)中不起作用?

ios - 用于推送通知的 OneSignal 注册在 Cordova 中不起作用

php - 组键单信号推送通知

c# - 从 C# 将 BSTR 传递到 COM 函数的约定(COM 互操作)

C#- 在 'enclosing' 本地范围内使用变量?

c# - JSON.NET 解析 +00 :00 timezone as local times, 但 Z 为 UTC

android - 字体文件的使用方法

android - 如何刷新谷歌地图中的坐标?

android - Android 4.4上的OneSignal崩溃