Вопрос

I want to send push notifications to Kindle Fire from WCF rest service.

I used PushSharp library, but it is not working properly. Can you please suggest any other way without using PushSharp library?

I am using below code to send notification on kindle it is give error 400,

   private void sendNotification(String registrationID)
    {
        String message = "{data\": {\"NTY\":\"-1\",\"NOTY\": \"2\"}}";
        String title="title";

        String accessToken = "";
        accessToken = UpdateAccessToken();
        HttpWebRequest httpWReq =
             (HttpWebRequest)WebRequest.Create("https://api.amazon.com/messaging/registrations/" + registrationID + "/messages");

        Encoding encoding = new UTF8Encoding();
        string postData = "{\"data\":{\"message\":\"" + message + "\",\"title\":\"" + title + "\"},\"consolidationKey\":\"Some Key\",\"expiresAfter\":86400}";
        byte[] data = encoding.GetBytes(postData);

        httpWReq.ProtocolVersion = HttpVersion.Version11;
        httpWReq.Method = "POST";
        httpWReq.ContentType = "application/json";//charset=UTF-8";
        httpWReq.Headers.Add("X-Amzn-Type-Version",
                                           "com.amazon.device.messaging.ADMMessage@1.0");
        httpWReq.Headers.Add("X-Amzn-Accept-Type",
                                        "com.amazon.device.messaging.ADMSendResult@1.0");
        httpWReq.Headers.Add(HttpRequestHeader.Authorization,
            "Bearer " + accessToken);
        httpWReq.ContentLength = data.Length;


        Stream stream = httpWReq.GetRequestStream();
        stream.Write(data, 0, data.Length);
        stream.Close();

        HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();
        string s = response.ToString();
        StreamReader reader = new StreamReader(response.GetResponseStream());
        String jsonresponse = "";
        String temp = null;
        while ((temp = reader.ReadLine()) != null)
        {
            jsonresponse += temp;
        }

    }
Это было полезно?

Решение

PushSharp relies on Google Cloud Messaging for Android, which is not supported on Kindle. You would need to either implement an Amazon Device Messaging (ADM) version (https://developer.amazon.com/public/apis/engage/device-messaging) or take advantage of Amazon's Simple Notification Service (SNS) to target Kindle and other platforms (https://aws.amazon.com/sns/)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top