2011-10-03 16 views
8

私は多くの似たような質問を見ましたが、 私はC2DMに登録しました。私は確認メールを受け取りました。それから私はC2DMのために登録するための簡単なアプリを書いた。私はid(エミュレータと実際のデバイスで試しました)を取得します。次に、C2DM登録に使用した電子メールのauthトークン(カール付き)を取得しました(ID取得のためにアプリで使用したのと同じメール)。
私はプッシュ(カールも)しようとすると、私は401のエラー(認証トークンが間違っているように)を取得します。IDと認証トークンを受信した後にメッセージを送信するときのc2dm 401エラー

私は多くのチュートリアルを読みましたが、私はアイデアが不足しています。

+0

奇妙なことは、私はc2dmのために登録されていなかった私の電子メールの認証トークンを取得しようとしたときに、私も認証トークンを取得します。だから私は、メッセージを送信するために使用される私の認証トークンが間違っている必要があります。 – DixieFlatline

+0

私も同じ問題を抱えています。 C2DMのAndroidアプリ登録がユーザートークンをWebサーバーに送信すると、WebサーバーはC2DMから認証トークンを取得し、プッシュ通知を登録されたアプリケーションに送信し、取得するのは401エラーです。たぶん、C2DMサービスに問題があります。おそらくあまり信頼性がありませんか? – jamesc

答えて

1

私は(唯一のカールで)それを試してみましょう:

最初に私たちが認証トークンを申請している:

curl.exe -v -k https://www.google.com/accounts/ClientLogin -d [email protected] -d Passwd=secret -d accountType=GOOGLE -d source=your.registered.domain -d service=ac2dm

結果では、あなたは、認証トークンを受けています

< HTTP/1.1 200 OK
SID=XXX
LSID=XXX
Auth=XXX
* Connection #0 to host www.google.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

Auth応答の結果は大文字で始まります。「Auth = XXバツ"!

今、私たちは次の要求を結果を用いますが、小文字の最初の文字とされています
curl.exe -v -k --header "Authorization: GoogleLogin auth=XXX" https://android.apis.google.com/c2dm/send -d "registration_id=XXX" -d "data=helloooo" -d collapse_key=Z

そして、この作品!

curl.exe" -v -k --header "Authorization: GoogleLogin Auth=XXX" https://android.apis.google.com/c2dm/send -d "registration_id=XXX" -d "data=helloooo" -d collapse_key=Z

だから、リクエスト2の「認証」は大文字と小文字が区別されます:あなたが最初の応答(「認証」の大文字のA)のように認証を使用している場合しかし、あなたは、401エラーを取得しています。私はこれがユーザーの50%が踏み込んでいる落とし穴だと思う。希望が役立ちます。

0

おそらくこれが問題ですか?

http://groups.google.com/group/vogella/browse_thread/thread/95865344e6d2c734

あなたはtehのAndroidデバイス上でspecifiy Basucally、「送信者」のパラメータは、送信者(サーバー側)としてregistredで同じメールアドレスでなければなりません。

+0

いいえ、ここで問題は送信者(サーバー側)とGoogle C2DMサーバーの間です。それはデバイスに関連していません。 – Kamchatka

関連する問題