2

C2DMサービスを使用してプッシュ通知をテストするのに問題があります。

「3.4。アプリケーションを登録する」までLarsの例を使用して、Androidテストプロジェクトをセットアップしています。デバイスから登録IDを正常に取得しました。

次に、次のカールを使用して、サーバー経由でAuthトークンを正常に取得します。

curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm

これで、プッシュする2つの主要なコンポーネントができました。したがって、テストの目的で、メッセージを送信するために別のcurlを発行します(認証トークンの生成を実装し、機能するようになったらphpでメッセージを送信します)。

私が使う:

curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=HelloPush" -d collapse_key=something -k

応答:

エラー=未登録

これは私がいる場所であり、混乱しています。ホワイトリストに登録された電子メール/pwを使用して認証トークンを正常に取得し、クライアントサーバーを介してC2DMプログラムに登録して受け入れました。次に、Larsのプロジェクトをコンパイルしてデバイス登録IDを生成しましたが、それらを一緒に使用すると、上記の未登録エラーが発生し、プッシュ通知が表示されません。

アイデア?さらに情報が必要な場合はコメントしてください。投稿を更新します。ありがとう。

4

2 に答える 2

4

私の例に従えば、RegisterActivity のテキスト フィールドで登録済みの C2DM ユーザー (電子メール アドレス) を維持する必要があります。これは、CURL のものと同じでなければなりません。また、認証文字列を正しくコピーしてください。

于 2011-03-13T19:23:24.643 に答える
2

この前の質問はもうチェックしましたか?android-c2dmこの問題は、メーリング リストでも頻繁に議論されています。の検索はこちらNotRegistered

よくある問題は、認証トークンの生成に使用したものと同じ送信者 ID をアプリケーションで使用していないことです。C2DM サインアップ フォームでは、2 つのメール アドレスを指定することに注意してください。1 つは承認されたときに通知するためのもので、もう 1 つは「ロール アカウント」です。後者は送信者 ID とも呼ばれ、電話アプリケーションと認証トークンの生成に使用されるアカウントで使用する必要があります。

于 2011-03-13T13:48:20.670 に答える