Microsoft Teams Chat メッセージ投稿 (Microsoft Teams Chat Message Post)
API(Microsoft Graph REST API)を使って、Microsoft Teams Chat の「チャット」もしくは「チーム」にユーザとしてメッセージを投稿します。
Configs
A: OAuth2 設定 *
B: チャットID * #{EL}
C: 投稿タイトル
D: 投稿メッセージ本文(HTML指定可 ※詳しくはヘルプ参照) *
O: メッセージIDを保存するデータ項目 (更新)
X: 通信ログを保存するデータ項目 (更新)
Script (click to open)
// Post Message Teams Chat via Microsoft Graph API v1.0 (ver. 202209)
// (c) 2022, Questetra, Inc. (the MIT License)
//// == 工程コンフィグの参照 / Config Retrieving ==
const oauth2 = configs.get( "conf_OAuth2" ) + "";
const chatId = configs.get( "conf_chatId" ) + "";
let subject;
const dataId_subject = configs.get( "conf_subject" );
if ( dataId_subject !== "" ) {
subject = engine.findDataByNumber( dataId_subject ) + "";
}
const content = engine.findDataByNumber( configs.get( "conf_messsage" ) ) + "";
const dataId_messageId = configs.get( "conf_messageId" );
const dataId_log = configs.get( "conf_log" );
//// == 演算 / Calculating ==
let requestObj = {};
if ( subject ) {
requestObj.subject = subject;
}
requestObj.body = {};
requestObj.body.contentType = "html";
requestObj.body.content = content;
//engine.log("json:"+JSON.stringify( requestObj ));
let accessLog = "";
let uri = "https://graph.microsoft.com/v1.0/me/chats/" + chatId + "/messages";
let response = httpClient.begin()
.authSetting( oauth2 )
.body( JSON.stringify( requestObj ), "application/json" )
.post( uri );
accessLog += "---POST request--- " + response.getStatusCode() + "\n";
accessLog += response.getResponseAsString() + "\n";
//// == ワークフローデータへの代入 / Data Updating ==
var status = response.getStatusCode();
if( status >= 300 ){
engine.log(accessLog);
throw `Failed in POST request. status: ${status}`;
} else {
const jsonObj = JSON.parse( response.getResponseAsString() );
let messageId = jsonObj.id + "";
if( dataId_messageId !== "" ){
engine.setDataByNumber( dataId_messageId, messageId );
}
}
if( dataId_log !== "" ){
engine.setDataByNumber( dataId_log, accessLog );
}
Download
2022-09-12 (C) Questetra, Inc. (MIT License)https://support.questetra.com/ja/addons/microsoftteams-chat-message-post/ Addonファイルのインポートは Professional でのみご利用いただけます 自由改変可能な JavaScript (ECMAScript) コードです。いかなる保証もありません。
Notes
Microsoft365(Azure Active Directory)側のアプリケーション登録の方法
Questetra 側の HTTP 認証設定の方法
「チャットId」の取得
「チャット」の場合 Web ブラウザで対象チャットを開く URL の「・・・conversations/」と「?ctx=chat」の間https://teams.microsoft.com/_?culture=ja-jp&country=JP&lm=deeplink&lmsrc=homePageWeb&cmpid=WebSignIn#/conversations/CHATID ?ctx=chat
「チーム」の場合 Web ブラウザで対象チャットを開く URL の「・・・threadId=」と「&ctx=channel」の間https://teams.microsoft.com/_?culture=ja-jp&country=JP&lm=deeplink&lmsrc=homePageWeb&cmpid=WebSignIn#/conversations/Workflow?threadId=CHATID &ctx=channel
「投稿タイトル」は、「チャット」向けでは無効で、「チーム」向けのみ有効。
「投稿メッセージ本文」は、HTML形式で指定可能。「チャット」向けの場合、改行を入れる場合は <br> で指定要。「チーム」向けの場合、改行は <br> ではなく、通常の改行で指定可。
「データ更新」 を使って以下のように本文を準備すると、プロセス詳細ページのハイパーリンクを埋め込み可能。
承認をお願いします。<br>
p#{processInstanceId} #{processInstanceTitle}<br>
<a href=”${var[applicationRoot]}OR/ProcessInstance/view?processInstanceId=#{processInstanceId}” target=”_blank”>申請リンク</a>
Capture
See also
https://support.questetra.com/ja/templates/travel-request-flow-20220912/
https://support.questetra.com/ja/addons/microsoftteams-messagepost/