プロアクティブ メッセージを送信する
プロアクティブ メッセージとは、ユーザーからの要求に応答していないボットから送信されたメッセージのことです。 これには、次のようなメッセージを含めることができます。
- ウェルカム メッセージ
- 通知
- 予定されたメッセージ
このステップ バイ ステップ ガイドは、ボットからプロアクティブなメッセージを送信するのに役立ちます。 次の出力が表示されます。
チャット内のプロアクティブな hello メッセージ
アダプティブ カードとしてのプロアクティブな hello メッセージ
前提条件
次をインストールしてください。
- 2019 Visual Studio。
- ASP.NET と Web 開発、または .NET Core クロスプラットフォーム開発ワークロード。
- ngrok: 最小限の労力でローカル開発サーバーをインターネットに公開できるクロスプラットフォーム アプリケーション。
- 無料のTeams開発者テナントを取得します。
ローカル環境を設定する
サンプル コード (Zip ファイル) をダウンロードし、ファイルを抽出します。
抽出されたファイルに移動し、 ProactiveBot.csproj をダブルクリックします。 ソリューションがVisual Studioで開きます。
Visual Studioで、プロジェクト (ProactiveBot) を右クリックし、[ビルド] を選択してソリューションをビルドします。
トラブルシューティング
パッケージが見つからない というエラーが発生した場合は、次の手順に従います。
- ツール > NuGet パッケージ マネージャーパッケージ マネージャー 設定 > に移動します。
- 表示される [オプション] ウィンドウで、[NuGet パッケージ マネージャー > Package ソース] を選択します。
- [追加] を選択します。
- [名前] フィールドと
https://api.nuget.org/v3/index.json
[ソース] フィールドに入力nuget.org
します。 - [ 更新] と [OK] を選択します。
- プロジェクトをリビルドします。
解凍して ngrok をインストールします。
- Windows: ダブルクリックします
ngrok.zip
。 - Linux または OS X: ターミナルから ngrok を解凍し、コマンドを
unzip /path/to/ngrok.zip
実行します。
- Windows: ダブルクリックします
コマンド ラインから次の引数を指定して ngrok を実行します。
ngrok http 3978 --host-header=localhost
次の手順で ngrok ベース URL として参照するには、ngrok URL (画像で強調表示されているように) をコピーします。
アプリTeams作成してインストールする
App Studio Teams >に移動し、ダウンロードした
AppManifest.zip
サンプル コード (Zip ファイル) で使用できるファイルをインポートします。BotsSet up を > 選択 します。
表示される [ボットのセットアップ ] ウィンドウで、「 名前 ( プロアクティブ メッセージ デモ など)」と入力し、[ 個人用] を選択し、[ ボットの作成 ] を選択してボットを作成します。
(コピーした) ngrok ベース URL に /api/messages を追加し、 ボット エンドポイント アドレス として設定します。 URL は次のようになります
https://yourngrokdomain.ngrok.io/api/messages
。変更が有効になるまで数秒待ちます。
時間がかかる場合は、[ タブ] を選択し、[ Bots ] セクションを選択して強制的に更新します。
[新しいパスワードの生成] を選択して新しいアプリ パスワードを生成し、それをコピーします。
Visual Studioに移動し、appsettings.json ファイルを 開きます。 の値
MicrosoftAppPassword
としてパスワードを貼り付けます。App Studio に移動し、アプリ ID をコピーします。
Visual Studioに移動し、appsettings.json ファイルを 開きます。 アプリ ID を値
MicrosoftAppId
として貼り付けます。appsettings.json
次の設定値があります。F5 キーを押すか、IIS Express を選択してコードを実行します。
対応するプロアクティブ なメッセージ サンプルが表示されます。
Test and distributeInstall > に移動して、同じアプリをもう一度インストールします。
チャットで
http://localhost:3978/api/notify
プロアクティブな Hello メッセージを取得する URL を選択します。Teamsに移動します。 インストールが成功すると、ボットからプロアクティブな hello メッセージが表示されます。
アダプティブ カードをプロアクティブ メッセージに追加する
Visual Studioで、デバッグ プロセスを停止します。
[依存関係] を右クリックし、[NuGet パッケージの管理] を選択します。
NuGet ProactiveBot で、[参照] を選択し、[AdaptiveCards] を検索します。 [インストール] を選択します。
NotifyController.cs ファイルを開き、既存
BotCallback
のコードを次のコードに置き換えてアダプティブ カード メッセージを送信します。private async Task BotCallback(ITurnContext turnContext, CancellationToken cancellationToken) { AdaptiveCard card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0)); card.Body.Add(new AdaptiveTextBlock() { Text = "Proactive Hello", Size = AdaptiveTextSize.ExtraLarge }); card.Body.Add(new AdaptiveImage() { Url = new Uri("http://adaptivecards.io/content/cats/1.png") }); Attachment attachment = new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }; await turnContext.SendActivityAsync(MessageFactory.Attachment(attachment)); }
波線の赤い線にマウス ポインターを合わせ、 AdaptiveCards を使用して エラーを解決します。
F5 キーを押してコードを実行します。
Teamsに移動し、アプリをアンインストールします。
同じアプリを再インストールしてイベントを取得します
conversationUpdate
。アダプティブ カードで http://localhost:3978/api/notify プロアクティブな hello メッセージを取得する URL を選択します。
チャレンジを完了する
このようなことを思い付いたのですか? アダプティブ カードでのプロアクティブな hello メッセージの表示方法は次のとおりです。
おめでとうございます。
シナリオを完了しました。
- 毎日通知を送信したり、定期的にユーザーからのフィードバックを要求したりできます。
- 調整の制限を処理して、複数の通知を回避します。
このセクションに問題がある場合 このセクションを改善できるよう、フィードバックをお送りください。