Amazon Simple Notification Service
開発者ガイド (API バージョン 2010-03-31)

Baidu 用の Amazon SNS エンドポイントの作成

このセクションでは、Baidu で使用する Amazon SNS エンドポイントを作成する方法についての追加の情報と例を提供します。Amazon SNS エンドポイントは、アプリケーションやモバイルデバイスを表すために、Baidu から受け取った userId と channelId の組み合わせを使用して作成します。その後、エンドポイントは、Baidu プッシュ通知サービスを使用してモバイルデバイスのアプリに通知メッセージを発行するために、Amazon SNS によって使用されます。

以下の Java の例で示しているのは、Baidu アプリおよびモバイルデバイス用の Amazon SNS エンドポイントを作成する方法です。

Map<String ,String> attributes = new HashMap<String ,String>(); // Insert your UserId. This is a mandatory field. attributes.put("UserId", "9999999999"); // Insert your ChannelId. This is a mandatory field. attributes.put("ChannelId", "1234567890"); CreatePlatformEndpointRequest createPlatformEndpointRequest = new CreatePlatformEndpointRequest(); // Baidu endpoints are identified by a combination of the userId and channelId which must be supplied as endpoint attributes, // without which a valid endpoint cannot be successfully created. createPlatformEndpointRequest.setAttributes(attributes); // Insert your ChannelId. This is a mandatory field. createPlatformEndpoint.setPlatformToken("1234567890"); // Insert your Customer User Data. This is an optional field. createPlatformEndpoint.setCustomUserData("Test Endpoint"); // Insert your Platform Application Arn. This is a mandatory field. createPlatformEndpoint.setPlatformApplicationArn("arn:aws:sns:us-west-2:123456789012:app/BAIDU/TestApp"); String endpointArn = snsClient.createPlatformEndpoint(createPlatformEndpointRequest);

Baidu と共に使用するエンドポイントを作成するために Amazon SNS API を使用するときは、以下の考慮事項に注意してください。

  • CreateEndpointRequest では、プラットフォームトークンフィールドに channelId を含める必要があります。

  • 属性マップでエンドポイント属性の "Token" を指定する場合、このフィールドは channelId もカプセル化する必要があります。

  • channelId は、"ChannelId" という名前のエンドポイント属性としても指定する必要があります。

  • 成功するようにリクエストを構成するには、"ChannelId" エンドポイント属性とプラットフォームトークンフィールドおよび "Token" エンドポイント属性の値が同一でなければなりません。

  • userId を "UserId" という名前のエンドポイント属性として指定する必要があります。

  • 正常な応答を得るには、リクエストの属性に有効な UserId と ChannelId 値を含める必要があります。また、CreatePlatformEndpointRequest の一部である、setPlatformToken (String) を使用して入力された ChannelId パラメータは、属性マップで指定されている ChannelId と同じでなければなりません。