Communication Services の通知

Azure Communication Services のチャットと通話の SDK により、リアルタイムのメッセージング チャネルが作成されます。これは、効率的で信頼性の高い方法で、接続されたクライアントにシグナリング メッセージをプッシュすることを可能にします。 これにより、複雑な HTTP ポーリング ロジックを実装することなく、豊富なリアルタイム通信機能をアプリケーションに組み込むことができます。 ただしモバイル アプリケーションでは、このシグナリング チャネルは、アプリケーションがフォアグラウンドでアクティブになっているときにのみ接続されたままになります。 アプリケーションがバックグラウンドで実行されているときに、ユーザーが電話の着信またはチャット メッセージを受け取るようにするには、プッシュ通知を使用する必要があります。

プッシュ通知を使用すると、アプリケーションからユーザーのモバイル デバイスに情報を送信できます。 プッシュ通知を使用すると、ダイアログを表示したり、音を鳴らしたり、電話の着信の UI を表示したりすることができます。 Azure Communication Services は Azure Event Grid および Azure Notification Hubs と統合されます。これにより、アプリにプッシュ通知を追加することができます。

Azure Event Grid 経由でプッシュ通知をトリガーする

Azure Communication Services は Azure Event Grid と統合され、信頼性が高く、スケーラブルで安全な方法でリアルタイムのイベント通知を配信します。 この統合を活用して通知サービスを作成できます。これにより、Azure Function または Webhook をトリガーするイベント グリッド サブスクリプションを作成して、モバイル プッシュ通知がユーザーに配信されます。

Diagram showing how Communication Services integrates with Event Grid.

Azure Communication Services でのイベント処理の詳細を確認してください。

Azure Notification Hubs 経由でプッシュ通知を配信する

重要

Azure Notification Hubs は、Firebase Cloud Messaging (FCM) レガシ API が 2024 年 7 月に非推奨になると発表しました。 これは、Android プッシュ通知を送信するすべての Azure Communiation Services 通話およびチャット アプリケーションに影響します。 影響を受けるお客様は、FCM レガシから FCM v1 に登録を移行する必要があり、2024 年 3 月に開始できます。 移行手順を含む詳細については、Notifcation Hub のドキュメントを参照してください。

電話の着信を受け取ったときにユーザーのモバイル デバイスに自動的にプッシュ通知を送信したりチャットできなかったことを知らせたりするために、Azure Notification Hub をCommunication Services リソースに接続することができます。 これらのプッシュ通知を使用して、自分のアプリケーションをバックグラウンドから起動し、ユーザーが通話を受け入れたり拒否したり、あるいは新たに受信したチャット メッセージを読み取ったりできるようにする UI を表示する必要があります。

Diagram showing how communication services integrates with Azure Notification Hubs.

Communication Services はパススルー サービスとして Azure Notification Hub を使用することで、直接送信 API を使用してプラットフォーム固有のさまざまなプッシュ通知サービスと通信します。 これにより、既存の Azure Notification Hub のリソースと構成を再利用して、待ち時間が短く、信頼性の高い通知をアプリケーションに配信できます。

Note

現在、Android と iOS の両方で、通話とチャットのプッシュ通知がサポートされています。

通知ハブのプロビジョニング

Notification Hubs を使用してクライアント デバイスにプッシュ通知を配信するには、Communication Services リソースと同じサブスクリプション内に通知ハブを作成します。 使用するプラットフォーム通知システム用に Azure 通知ハブを構成する必要があります。 Notification Hubs からのプッシュ通知をクライアント アプリで取得するには、Notification Hubs の使用に関する記事を参照し、ページの上部にあるドロップダウン リストでターゲット クライアント プラットフォームを選択します。

Note

現在、APN および FCM プラットフォームがサポートされています。 APNs プラットフォームは、トークン認証モードで構成する必要があります。 現在、証明書認証モードはサポートされていません。

通知ハブを構成したら、Azure Resource Manager クライアントまたは Azure portal を使用してハブの接続文字列を指定することにより、Communication Services リソースにそれを関連付けることができます。 接続文字列には Send アクセス許可が含まれている必要があります。 ハブ専用の Send のみのアクセス許可が設定された別のアクセス ポリシーを作成することをお勧めします。 Notification Hubs のセキュリティとアクセスのポリシーに関する詳細を確認してください

Azure Resource Manager にログインするには、以下を実行し、ご自身の資格情報を使用してサインインします。

armclient login

正常にログインしたら、以下を実行して通知ハブをプロビジョニングします。

armclient POST /subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.Communication/CommunicationServices/<resource_id>/linkNotificationHub?api-version=2020-08-20-preview "{'connectionString': '<connection_string>','resourceId': '<resource_id>'}"
  1. ポータルで、お使いの Azure Communication Services リソースに移動します。

  2. Communication Services リソース内で Communication Services ページの左側のメニューから [プッシュ通知] を選択し、前にプロビジョニングした通知ハブを接続します。

  3. [Connect notification hub]\(通知ハブの接続\) を選択します。 接続できる通知ハブの一覧が表示されます。

  4. このリソースに使用する通知ハブを選択します。

    • 新しいハブを作成する必要がある場合は、[新しい通知ハブの作成] を選択して、このリソース用にプロビジョニングされた新しいハブを取得します。

    Screenshot showing the Push Notifications settings within the Azure portal.

リンクした接続状態の通知ハブが表示されます。

リソースに別のハブを使用する場合は、[切断] を選択し、手順を繰り返して別の通知ハブをリンクします。

Note

ハブのリンク方法に関する変更は、最大 10 分以内にデータ プレーン (つまり、通知の送信時) に反映されます。 変更前に通知が送信されている場合は、ハブが初めてリンクされるときにこれと同じ動作が適用されます。

デバイス登録

Communication Services にデバイス ハンドルを登録する方法については、音声通話のクイック スタートチャットのクイックスタートに関する記事を参照してください。

プッシュ通知のトラブルシューティング ガイド

ご自分のデバイスにプッシュ通知が表示されない場合、通知が欠落した可能性がある場所は 3 つです。

  • Azure Notification Hubs が、Azure Communication Services からの通知を受け取りませんでした
  • プラットフォーム通知システム (APNs や FCM など) が、Azure Notification Hubs からの通知を受け取りませんでした
  • プラットフォーム通知システムが、デバイスに通知を配信しませんでした。

通知が欠落した可能性がある最初の場所 (Azure Notification Hubs が、Azure Communication Services からの通知を受け取らなかった) については、以下で説明します。 他の 2 つの場所については、「Azure Notification Hubs での欠落した通知の診断」を参照してください。

自分の Communication Services リソースから Azure Notification Hubs に通知が送信されているかどうかを確認する方法の 1 つは、リンクされている Azure 通知ハブ メトリックincoming messages メトリックを調べることです。

以下に、Azure 通知ハブが Communication Services リソースからの通知を受け取らない原因となる可能性がある一般的な構成ミスをいくつか示します。

Azure 通知ハブが Communication Services リソースにリンクされていない

Azure 通知ハブを Communication Services リソースにリンクしなかった可能性があります。 これらをリンクする方法については、「通知ハブのプロビジョニング」セクションを参照してください。

リンクされた Azure 通知ハブが構成されていない

使用したいプラットフォーム (iOS や Android など) のプラットフォーム通知システムの資格情報を使用して、リンクされた通知ハブを構成する必要があります。 これを実行する方法の詳細については、「通知ハブのプッシュ通知を設定する」を参照してください。

リンクされた Azure 通知ハブがない

Communication Services リソースにリンクされている Azure 通知ハブが既にありません。 リンクされた通知ハブがまだあることを確認します。

Azure 通知ハブの APNs プラットフォームが証明書認証モードで構成されている

証明書認証モードで APNs プラットフォームを使用する方法は、現在はサポートされていません。 「通知ハブのプッシュ通知を設定する」で指定されているように、トークン認証モードで APNs プラットフォームを構成する必要があります。

リンクされた接続文字列に Send アクセス許可がない

通知ハブを Communication Services リソースにリンクするために使用される接続文字列には、Send アクセス許可が含まれている必要があります。 新しい接続文字列を作成する方法、または Azure 通知ハブの現在の接続文字列を確認する方法の詳細については、Notification Hubs のセキュリティとアクセス ポリシーに関するページを参照してください

リンクされた接続文字列または Azure 通知ハブのリソース ID が有効ではない

Communication Services リソースが、正しい接続文字列と Azure 通知ハブ リソース ID を使用して構成されていることを確認してください

リンクされた接続文字列が再生成される

リンクされた Azure 通知ハブの接続文字列を再生成した場合は、通知ハブを再度リンクすることにより、接続文字列を Communication Services リソースの新しい接続文字列で更新する必要があります。

次のステップ