C2DMにサインアップしたところ、次のメールが届きました。
Android Cloud to Device Messaging (C2DM) に関心をお寄せいただきありがとうございます。トライアル グループへの申し込みを承認しました。アプリケーションの送信者アカウントとしてリクエストした Google アカウント: some.fake@email.com が、許可された送信者のリストに追加されました。これを使用して、翌日以内に Android 2.2 デバイスにメッセージを送信できるようになります。とか、ぐらい。メッセージの送信に使用するロール アカウントを変更したい場合は、サインアップ フォームに再度入力してください。デフォルトでは、 http ://code.google.com/android/c2dm/quotas.html に記載されているように、すべての新しい送信者アカウントに最初の本番レベルのクォータが付与されます。 より高いクォータが必要な場合は、そのページの指示に従ってクォータ リクエストを送信してください。Android Cloud to Device Messaging は現在 Labs の API であるため、サービスと関連するクォータをいつでも根本的に変更する権利を留保します。Android Cloud to Device Messaging の詳細については、 http ://code.google.com/android/c2dm/でドキュメントとサンプル コードを 参照できます。質問やフィードバックがある場合は、Google グループ ( http: //groups.google.com/group/android-c2dm 送信者のアドレスは監視されていないため、このメールには返信しないでください。ありがとう、Android Cloud to Device Messaging チーム
これで、いくつかの通知を C2DM にプッシュする準備が整いました。DroidPimpを使用した .net ベースのサーバー側の実装があります。
public class C2DMNotificationService : INotificationService<IAndroidPushNotification, C2DMChannel, IAndroidPhoneEndpoint>
{
public void SendNotification(IAndroidPushNotification notification, C2DMChannel channel, IAndroidPhoneEndpoint endpoint)
{
var pusher = new Pusher();
if (string.IsNullOrEmpty(notification.AuthToken))
{
// Note: this authtoken is refreshed periodically, so we need to think about how often we grab a new authtoken from google.
var source = string.Format("{0}-{1}-{2}", channel.CompanyName, channel.ApplicationName, channel.Version);
var loginResp = pusher.ClientLogin(channel.AccountEmailAddress, channel.AccountPassword, source);
if (loginResp.StatusCode != ClientLoginStatusCode.Ok)
throw new Exception("Got a bad login status: " + loginResp.StatusCode);
notification.AuthToken = loginResp.AuthToken;
}
var sendMessageResp = pusher.SendMessage(endpoint.RegistrationId, notification.CollapseKey, notification.Values, notification.AuthToken, notification.DelayWhileIdle);
// TODO: check response status..
}
}
ご覧のとおり、pusher.ClientLogin
メソッドにはパスワードが必要ですが、私はパスワードを持っていません。C2DM のサインアップに使用した送信者アカウントを持っていますが、パスワードがありません。パスワードはどこにありますか、またはどうすれば取得できますか?