Asp.net Android C2DM未经授权(401)

Asp.net Android C2DM未经授权(401),asp.net,android,oauth,android-c2dm,Asp.net,Android,Oauth,Android C2dm,我有一个带有ASP.NET后端的Android应用程序。我有手机的注册id,还有谷歌提供的正在推送的应用服务器的身份验证令牌 当我向C2DM发出http post请求以便手机收到消息时,我会不断收到未经授权的消息。以下是我在.NET中提出请求的方式: WebRequest myRequest = WebRequest.Create("https://android.apis.google.com/c2dm/send"); myRequest.ContentType = "appl

我有一个带有ASP.NET后端的Android应用程序。我有手机的注册id,还有谷歌提供的正在推送的应用服务器的身份验证令牌

当我向C2DM发出http post请求以便手机收到消息时,我会不断收到未经授权的消息。以下是我在.NET中提出请求的方式:

    WebRequest myRequest = WebRequest.Create("https://android.apis.google.com/c2dm/send");
    myRequest.ContentType = "application/x-www-form-urlencoded";
    myRequest.Method = "POST";
    myRequest.Headers.Add("Authorization", "GoogleLogin auth=" + authId);
    // buiold the post string
    StringBuilder myPost = new StringBuilder();
    myPost.AppendFormat("registration_id={0}", regId);
    myPost.AppendFormat("&data.payload={0}", msg);
    myPost.AppendFormat("&collapse_key={0}", colKey);

    // write the post-string as a byte array
    byte[] myData = ASCIIEncoding.ASCII.GetBytes(myPost.ToString());
    myRequest.ContentLength = myData.Length;
    Stream myStream = myRequest.GetRequestStream();
    myStream.Write(myData, 0, myData.Length);
    myStream.Close();
    // Do the actual request and read the response stream
    WebResponse myResponse = myRequest.GetResponse();
    Stream myResponseStream = myResponse.GetResponseStream();
    StreamReader myResponseReader = new StreamReader(myResponseStream);
    string strResponse = myResponseReader.ReadToEnd();
    myResponseReader.Close();
    myResponseStream.Close();

任何帮助都将不胜感激

建议角:偶尔对你的代码有点信心!甚至谷歌有时也会搞砸


在花了大约九个小时阅读了关于GoogleOAuth和C2DM的每一篇博文和文章,并在我的代码中尝试了不同的东西之后,我给Google发了电子邮件。我很兴奋地说,我不仅很快收到了回复,而且我的账户也被搞砸了。当我在他们的网站上注册时,出现了一些问题,尽管从我收到的注册成功电子邮件看来一切正常,但事实并非如此。我重新注册了,一切正常

我在尝试谷歌c2dm(云到设备消息)代码示例时遇到了类似的问题:错误401“Unauthorized”。它看起来像以前的例子,但现在谷歌改变了它的条件。在运行代码示例之前,您必须注册:


我注册了,几分钟后这些东西就开始工作了。

我也遇到了同样的问题,即突然我的C2DM账户电子邮件停止工作

要解决这个问题,只需使用相同的信息和相同的C2DM_帐户_电子邮件再次填写注册


HTH

我想我觉得可能是我的授权标头做错了,但我在网上找不到此服务的任何示例标头。或者可能是我没有正确编码标头?我真的认为这与授权头有关。你能分享一些关于如何使用.NET获取OAuth令牌的代码吗?好吧,这篇文章有点老了,所以我很难记住所有的事情:但是,我想当我给谷歌发电子邮件时,他们对我的帐户做了一些事情,使我辞职后的帐户工作正常。一个“给谷歌发电子邮件”是怎么回事?什么地址?