Android 向C2DM发送消息时会不断返回401

Android 向C2DM发送消息时会不断返回401,android,android-c2dm,Android,Android C2dm,我已经试了两天了,都没有成功。我的目标是向C2DM发送一条短消息。我使用了一个简单的Java应用程序和curl,但它不断返回响应代码401:(Unauthorized) 第一个curl命令: curl https://www.google.com/accounts/ClientLogin -d Email=firstname.lastname@gmail.com -d Passwd=mypasswd -d accountType=HOSTED_OR_GOOGLE -d source=Google

我已经试了两天了,都没有成功。我的目标是向C2DM发送一条短消息。我使用了一个简单的Java应用程序和curl,但它不断返回响应代码401:(Unauthorized)

第一个curl命令:

curl https://www.google.com/accounts/ClientLogin -d Email=firstname.lastname@gmail.com -d Passwd=mypasswd -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm
返回三个长字符串:SID、LSID和Auth

接下来,我将Auth字符串复制到以下命令(Auth_string):

但它总是返回响应代码401。注册id是从Android客户端应用程序复制的,应该是有效的


这个怎么了?非常感谢您的帮助。

在第一个curl命令中使用正确的电子邮件地址和密码即可解决问题。应使用在为ac2dm签名时使用的电子邮件凭据

curl --header "Authorization: GoogleLogin auth=AUTH_STRING" "https://android.clients.google.com/c2dm/send" -d registration_id=SOME_REGISTRATION_ID -d "data.message=HelloWorld" -d collapse_key=0 -k