今回は、ArcGIS Velocity の Microsoft Teams 出力 を使った通知方法をご紹介します。本記事では、データを受信するフィードに HTTP 受信機 を使用します。
ArcGIS Velocity の概要、フィードやリアルタイム解析の作成や実行については、過去ブログ( Python を使って ArcGIS Velocity のフィードにデータを送信してみよう! / Python を使ってリアルタイム解析を監視してみよう! )を合わせてご覧ください。
Microsoft Teams のご利用には Microsoft アカウントが必要となります。Microsoft Teams は 2025 年 11 月時点における、バージョン 25275.2601.4002.2815 を利用しています。また、組織設定や個人設定、バージョンの違い等により、メニュー項目や見た目が異なる場合がありますので、予めご了承ください。
先ず Microsoft Teams へサインインし、通知を受けたい Microsoft Teams のチャネルを選択します。チャネルのコンテキスト メニューから [ワークフロー] を選択します。
※ Office 365 コネクタの廃止に伴い、以前にご紹介したコネクタ (Incoming Webhook) は作成ができなくなりましたので、代わりに「ワークフロー」を使用して受信 Webhook を作成していきます 。
以下のダイアログが開いたら、[Webhook 要求を受信するとチャネルに投稿する] を選択します。
[名前] に適当な名称を付け、[次へ] ボタンを押下します。
通知を受けたい [Microsoft Teams Team] および [Microsoft Teams Channel] に問題がなければ、[ワークフローを追加する] を押下します。
ワークフローが正常に追加されたら、通知先の URL (赤枠内) をコピーしておきます ( 後ほど、ArcGIS Velocity の設定で使います )。
次に、ArcGIS Velocity の設定を行っていきます。
ArcGIS Velocity へサインインし、[フィードの作成] から新規でフィードを作成します。
フィード タイプは、Web およびメッセージングの中から [HTTP 受信機] を選択します。
HTTP 受信機の設定では、認証タイプを ArcGIS とし、スキーマの指定に進みます。
スキーマの指定では、X (経度)および Y (緯度)、対象となるデータの ID を含めるようにします。
キー フィールドの識別では、X (経度)および Y (緯度)、Track ID をそれぞれ設定します。
フィード タイトルを設定して、フィードの作成は完了です。
次に、[リアルタイム解析の作成] から新規でリアルタイム解析を作成します。
[既存のフィード] を選択します。
既存のフィードの選択では、作成した HTTP 受信機フィードを選択します。
リアルタイム解析のモデル ビューに、作成した HTTP 受信機フィードが追加されたら、出力メニューから [その他の出力] を選択します。
出力タイプの選択では、 [Web およびメッセージング] を選択します。
Web およびメッセージング オプションでは、 [Microsoft Teams] を選択します。
モデル ビューに Microsoft Teams 出力が追加されたら、HTTP 受信機フィードと接続します ( HTTP 受信機フィード右中央の端にある丸印をドラッグし、Microsoft Teams 出力の左中央の端にある丸印まで矢印を引っ張りドロップします ) 。
次に Microsoft Teams 出力をダブル クリックし、プロパティ画面を開きます。プロパティ画面では、必要に応じてノード名の右にあるペン印のアイコンを押下し、ノード名を変更します。また、編集ボタンを押下し Microsoft Teams 出力の設定を行います。
前章にてコピーしておいた Webhook URL を [Microsoft Teams の Webhook URL] に設定します。その後、メッセージ POST の本文を設定します。ここでは、[Arcade 条件式の構成] ボタンを押下し設定していきます。
Microsoft Teams にメッセージを送信するには、Microsoft Teams アダプティブ カードの仕様に則った記述が必要となります。アダプティブ カードについては Microsoft Teams アダプティブ カードの概要を、記述例については Microsoft Teams アダプティブ カードの JSON の例 をご覧ください。
Arcade 条件式の構成には、Microsoft Teams で受け取ったデータの内容を表示できるよう、以下のような内容を設定し完了します。
Text ({
"type":"message",
"attachments": [
{
"contentType":"application/vnd.microsoft.card.adaptive",
"contentUrl": null,
"content": {
"type": "AdaptiveCard",
"speak": "データ受信テスト",
"version": "1.5",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"body": [
{
"type": "TextBlock",
"text": "データ受信テスト",
"wrap": true,
"size": "Large",
"weight": "Bolder",
"color": "Attention"
},
{
"type": "FactSet",
"facts": [
{
"title": "ID",
"value": $feature.id
},
{
"title": "経度",
"value": $feature.x
},
{
"title": "緯度",
"value": $feature.y
}
]
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.OpenUrl",
"title": "ArcGIS Velocity",
"url": "https://velocity.arcgis.com/home"
}]
}]
}
}]
})
最後に [解析の作成] を行います。
タイトルに任意の名称を、サマリーに任意の概要文を記入します。任意のフォルダーを選択し、[解析の作成] ボタンを押下して ArcGIS Velocity の設定は完了となります。
データを送信する前に、フィードとリアルタイム解析が開始されていない場合は、忘れずに開始しておきましょう。
REST Client 等を利用して HTTP リクエストを送信します。
ArcGIS Online の Generate Token API を利用して、アクセス トークンを取得します。ここで指定するユーザー名は、フィードを作成したユーザー(フィードの所有者)である必要があります。
POST https://[organization].maps.arcgis.com/sharing/rest/generateToken HTTP/1.1 Host: [organization].maps.arcgis.com Content-Type: application/x-www-form-urlencoded
username=[username]&password=[password]&clientreferer=&referer=https%3A%2F%2F[organization].maps.arcgis.com&expiration=60&f=json |
※ [ ] 部分はご利用の環境やユーザー名、パスワード等へ置き換えてください。
前章で作成した HTTP 受信機フィードの URL を取得します。
[ホーム] ⇒ [フィード] で、フィードの一覧から作成した HTTP 受信機フィードを選択します。[フィードの詳細] を展開し、[HTTP エンドポイントのパス] をコピーします。
次に HTTP 受信機フィードへデータを送信します。送信先には HTTP エンドポイントのパスを設定し、HTTP ヘッダー (Authorization) にアクセス トークンを設定します。
POST https://[http_endpoint_path] HTTP/1.1 Content-type: application/json Authorization: Bearer [access-token]
{ "id": "テスト ユーザー", "x": 139.740300, "y": 35.678600 } |
※ テストデータとなるため、ここではデータの中身は適当な数値や文字列を設定しています。
データの送信に成功しているかどうか、戻り値から HTTP ステータスコードを確認します。200 (OK) となっていれば送信は成功です。失敗する場合は、以下のような原因が考えられますので、再度確認してみてください。
HTTP 受信機フィードで受信したデータは、ArcGIS Velocity のモデル ビューで作成したフローに沿って Microsoft Teams 出力へ渡され、設定された Webhook URL へ送信 (出力) されます。
通知を受ける Microsoft Teams のチャネルでは、以下のような形で通知されることを確認できました。
ArcGIS Velocity から Microsoft Teams への通知についてご紹介しました。通知は、Microsoft Teams 出力だけでなく、Slack 出力 を利用することで Slack への通知も可能です。他にも様々なタイプの出力がありますので、今後もご紹介していきます。リアルタイム データの取り込みや解析に是非 ArcGIS Velocity をご活用ください。
ArcGIS Velocity :
Esri Community :