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 をトリガーするイベント グリッド サブスクリプションを作成して、モバイル プッシュ通知がユーザーに配信されます。
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 を表示する必要があります。
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 クライアントを使用した通知ハブのリンク
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>'}"
Azure portal を使用した通知ハブのリンク
ポータルで、お使いの Azure Communication Services リソースに移動します。
Communication Services リソース内で Communication Services ページの左側のメニューから [プッシュ通知] を選択し、前にプロビジョニングした通知ハブを接続します。
[Connect notification hub]\(通知ハブの接続\) を選択します。 接続できる通知ハブの一覧が表示されます。
このリソースに使用する通知ハブを選択します。
- 新しいハブを作成する必要がある場合は、[新しい通知ハブの作成] を選択して、このリソース用にプロビジョニングされた新しいハブを取得します。
リンクした接続状態の通知ハブが表示されます。
リソースに別のハブを使用する場合は、[切断] を選択し、手順を繰り返して別の通知ハブをリンクします。
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 リソースの新しい接続文字列で更新する必要があります。
次のステップ
- Azure Event Grid の概要については、Event Grid の紹介に関する記事を参照してください。
- Azure Notification Hub の概念の詳細については、Azure Notification Hubs のドキュメントを参照してください