【GAS】半自動でTeamsに出勤を通知
毎朝Teamsへ出勤報告をしないといけないのですが、
いちいちチーム>チャンネルを開く>題名と出勤報告を入れるのが若干面倒・・・
なんとかTeamsへ自動で投稿する機能はないかと調べてみたところ
以下の方法を発見しました
自動投稿の方法
・power automate の利用
⇒弊社では利用不可
・webhookの利用
⇒弊社では利用不可
・botの作成
⇒弊社では利用不可
・メールで投稿
⇒社用メールのドメインなら利用可能(これだっ)
メールで投稿してみる
管理者が制限している範囲内では利用可能でした。
(うちの会社の設定では社用ドメインのメールからなら投稿可能でした。)
ただし弊社では外部ドメインあてのメールは誤送信防止策として
社内メールサーバに10分ひっかかるためオンタイムでの投稿にならないという微妙な感じに…。
そこで社内サーバにひっかからないように私用メール(社用メールをエイリアスで設定)→Teamsに投稿
であたかも社内メールアドレスから送信した風にしようとしましたが、Gmailの設定が変わったのか
設定時に社用メールのIDPWを求められたため断念…。
(gmailのようなフリーアドレスから社用メールを装って送るため、さすがに情シスに怒られそうなきがした…)
結局社用のgsuiteアドレスからエイリアス設定(以前設定したのでIDPWの入力は不要)で社用メールアドレスを装って送ることにしました。(ちなみに社用のgsuiteアドレスも社内サーバにひっかかり10分の遅延がある)
で、以前ブログで書いたiphoneのショートカットでGASを叩く方法を設定して半自動で投稿することができました。
ここまでするなら普通に投稿したほうが早そう。
スクリプト
function doGet() {
const strTo = PropertiesService.getScriptProperties().getProperty('TEAMS_MAIL');const strFrm = PropertiesService.getScriptProperties().getProperty('MY_MAIL');
var today = new Date();
var todayDate = today.getMonth() + 1 + "/"+ today.getDate();
var strSubject = todayDate + "みかんの勤務"
var strBody = "勤務開始"
/* メールを送信 */
GmailApp.sendEmail(
strTo,
strSubject,
strBody,
{
from: strFrm ,
name:'★自動投稿★'
}
);
}