3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[HULFT Square]GraphAPIを使ってTeamsへメッセージを送信

Last updated at Posted at 2025-01-23

この記事で出来ること

GraphAPIを使ってTeamsへメッセージを送信

認証について

Microsoft Graphの認証の詳細な仕組みはこちらを参考にして下さい。

今回はユーザーに代わってアクセスする委任アクセスを使用します。

手順

1.AzureのEntraにアプリを作成

※こちらの記事を参考にしています。Microsoft Teamsにつないでみた【認証編】

Azure Portalにログイン

「Azure Active Directory」を選択しアプリの登録を行う

image.png

※テナントが作成されていない場合はテナントの作成から始めて下さい。

2. アクセス許可を追加

Teamsのチャットへメッセージを送信する為に必要な権限を追加します。

image.png

ドキュメントを参考にしてください。チャットにメッセージを送信する アクセス許可

今回は ChatMessage.Send を追加しました。

image.png

3. クライアントシークレットを発行

image.png

証明書とシークレットより新しいキーを発行します。大切に保管して下さい。

image.png

4. アプリへのアクセス許可を承認する

以下URLをChromeで叩きます。手順1

https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/authorize?client_id=xxx&response_type=code&redirect_uri=xxx&scope=https://graph.microsoft.com/.default

ブラウザで認証画面が表示されるので 「承諾」 をクリック。

image.png

アプリ作成時に指定したリダイレクトURIへ遷移すれば承認は完了です。

注意
アプリ単位で承認が必要になります。

5. URLからコードを取得

遷移したページのURLからコードを取得します。このコードは次のアクセストークン取得の際、認証情報として使用します。
<リダイレクトURL>?code=xxx&session_state=xxx

image.png

6. アクセストークンを取得

HULFT Square

※こちらの記事を参考にしています。
Microsoft Teamsにつないでみた【認証編】 ◎HULFT Squareの設定

コネクションの作成からはじめます。

image.png

アクセストークンを取得するスクリプトを用意します。

image.png

POST実行処理

パス:<tenant_id>/oauth2/v2.0/token

image.png

・リクエスト/レスポンス/ヘッダ設定
こちらを参考にしてください。公式ドキュメント

mapping
クエリパラメータの値を入れて下さい。

image.png

キー
client_id <1で作成したアプリのクライアントID>
grant_type authorization_code
scope https://service.flow.microsoft.com//.default
code <6でURLから取得したコード>
redirect_uri <1で設定したリダイレクトURI>
client_secret <3で取得したクライアントシークレット>

実行するとアクセストークンが取得できます。

image.png

実務で使用する場合はリフレッシュトークンを使用してアクセストークンを取得する等追加で考慮が必要だと思います。今回は検証用途で試しています。

7. HULFTSqaureのスクリプトを作成&実行

コネクションを作成

認証用とは別にGraphAPIの呼び出しに必要です。
URL:https://graph.microsoft.com

image.png

Teamsへメッセージを送信するスクリプトを作成します。こちらのAPIを使用します。
チャットにメッセージを送信する アクセス許可

image.png

POST実行処理(GraphAPI呼び出し)

接続先:<GraphAPI用に作成したコネクション>
パス:/chats/{chat-id}/messages

必須設定
image.png

{chat-id}はチャット内のメッセージのリンクをコピーから取得できます。teams.microsoft.com/l/message/19:xxxxx@thread.v2←ここ

image.png

リクエスト設定
image.png

レスポンス設定
image.png

ヘッダー設定
Authorization:Bearer ${アクセストークン} ※6で取得したアクセストークン
Content-type:application/json

image.png

スクリプト呼び出し

アクセストークンを取得するスクリプトを呼び出します。
image.png

出力変数にアクセストークンがあることを確認します。

image.png

mapping

contentにはチャットに書き込みたいメッセージを入力します。
スクリプト呼び出しの出力変数であるアクセストークンも線をひきます。

image.png

設定が完了したら実行します。
image.png

8. Teamsのチャットを確認

無事メッセージが書き込まれていることが分かります!

image.png

最後に

参考になれば幸いです。
PowerAutomateの認証方法についても記事を載せています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?