【问题标题】:GCM giving error: (401) UnauthorizedGCM 给出错误:(401)未经授权
【发布时间】:2015-11-29 15:44:12
【问题描述】:

我正在尝试用 c# 编写 web api 以在 android 设备中发送推送通知。这给了我 401 未经授权的错误。我已按照所有步骤发送通知。我无法理解为什么我没有授权用户。

这是我发送通知的功能。

public String Post(string message, string regId)
        {
            try
            {


                WebRequest tRequest;
                tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
                tRequest.Method = "post";
                tRequest.ContentType = "application/json";
                tRequest.Headers.Add(string.Format("Authorization: key=**server-api-key**"));

                tRequest.Headers.Add(string.Format("Sender: id=**sender-id**"));

                string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message="
                    + message + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + regId + "";


                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 = tRequest.GetResponse();

                dataStream = tResponse.GetResponseStream();

                StreamReader tReader = new StreamReader(dataStream);

                String sResponseFromServer = tReader.ReadToEnd();

                tReader.Close();
                dataStream.Close();
                tResponse.Close();
                return sResponseFromServer;
            }
            catch (Exception e)
            {
                throw;
            }
        }

获取api密钥

服务器密钥 1

和来自

的发件人ID

项目编号

我的 post 函数接受消息和 regId,即设备 ID。

【问题讨论】:

    标签: c# android c#-4.0 push-notification google-cloud-messaging


    【解决方案1】:

    我不懂 C#,可能会遗漏一些东西。看起来您的帖子数据不是 JSON 格式。我没有看到任何牙套。 This SO question 提供了如何发布 JSON 格式数据的示例。

    另外,请尝试使用 curl 验证您的 API 密钥,如 this example 中所述。

    【讨论】:

      猜你喜欢
      • 2015-10-14
      • 2014-02-26
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      相关资源
      最近更新 更多