開発者コンソール

グループベースのメッセージング

グループベースのメッセージング

グループメッセージングを使用すると、単一のAPI呼び出しでデバイスのグループにメッセージを送信できます。この場合、グループのメンバーシップはアプリサーバーによって管理されます。これにより、ユーザーが複数のデバイスを所有している場合、すべてのデバイスを1つのグループに追加して、そのグループにメッセージを送信することで、すべてのデバイスにメッセージを送信できます。

グループメッセージングのユースケース
グループメッセージングのしくみ

グループにメッセージを送信する前に、グループに追加する各デバイスの登録IDを取得する必要があります。

グループの作成

グループを作成するには、そのグループに含まれる登録IDのリストを指定して、グループ名にPOSTリクエストを送信します。ADMから、成功した登録IDの数と失敗した登録IDのリストが返されます。

リクエスト形式

POST /v1/messaging/group/operations
Host: api.amazon.com
Authorization: Bearer (アクセストークン)
Content-Type: application/json
{   
    "operation": "create",
    "group_name": "app_group_name",
    "registration_ids": ["regId1","regId2","regId3"]
}

POST URLは2行目(Host)と1行目(POST)で構成されます。これらを組み合わせると、以下のような完全なURLを取得できます。

https://api.amazon.com/v1/messaging/group/operations

group_nameは、グループに対するダウンストリームメッセージのaddremovesendなど、あらゆる操作で識別子の役割を果たします。group_nameはサーバーに保存するか、サーバー上で一意の識別子に関連付けてください。

以下のgroup_nameに関する要件に留意してください。

  • 英数字で構成されていること
  • 個人情報や機密情報が含まれていないこと

レスポンス形式

部分的に成功したレスポンスは以下のようになります。

{
    "success":1,
    "failure":2,
    "failed_registration_ids":["regId1","regId2"]
}

完全に成功したレスポンスは以下のようになります。

{
    "success":3,
    "failure":0
}

どちらの場合も、ADMグループが作成されます。successフィールドが0の場合、グループは作成されません。

グループに対する登録IDの追加/削除

登録IDをグループに追加する場合はadd operationを、登録IDをグループから削除する場合はremove operationを使用します。

以下は、グループに登録IDを追加するリクエストの例です。

リクエスト形式

POST /v1/messaging/group/operations
Host: api.amazon.com
Authorization: Bearer (アクセストークン)
Content-Type: application/json
{   
    "operation": "add",
    "group_name": "app_group_name",
    "registration_ids": ["regId1","regId2"]
}

POST URLは2行目(Host)と1行目(POST)で構成されます。これらを組み合わせると、以下のような完全なURLを取得できます。

https://api.amazon.com/v1/messaging/group/operations

レスポンス形式

以下のレスポンスは、1つの登録IDがグループに追加され、regId1が追加されなかったことを示します。

{
    "success":1,
    "failure":2,
    "failed_registration_ids":["regId1"]
}

グループからの登録IDリストの取得

グループから登録IDのリストを取得するには、オペレーションパラメーターをretrieveに設定してPOSTリクエストを送信します。

リクエスト形式

POST /v1/messaging/group/operations
Host: api.amazon.com
Authorization: Bearer (アクセストークン)
Content-Type: application/json
{   
    "operation": "retrieve",
    "group_name": "app_group_name"
}

POST URLは2行目(Host)と1行目(POST)で構成されます。これらを組み合わせると、以下のような完全なURLを取得できます。

https://api.amazon.com/v1/messaging/group/operations

レスポンス形式

{
    "registration_ids":["regId1","regId2",..]
}

グループへのダウンストリームメッセージの送信

グループへのダウンストリームメッセージの送信は、トピックへのメッセージの送信と似ています。グループベースのメッセージングでは、"topic":"SomeTopic""group_name":"group_name"に置き換わり、URLがグループメッセージングのURLになっている点が異なります。

リクエスト形式

POST /v1/messaging/group/messages
Host: api.amazon.com
Authorization: Bearer (アクセストークン)
Content-Type: application/json
Accept: application/json
{
    "group_name": "group_name",
    "data":{"key1":"value1","key2":"value2"},
    "notification":{
        "title":"Notification title",
        "body":"Notification Body for ADM"    
    }
}

POST URLは2行目(Host)と1行目(POST)で構成されます。これらを組み合わせると、以下のような完全なURLを取得できます。

https://api.amazon.com/v1/messaging/group/messages

レスポンス形式

{
    "success":1,
    "failure":2,
    "failed_registration_ids":["regId1","regId2"]
}