VBAからメールとGoogleチャットにメッセージを飛ばすためにデータ連携をする方法を考えている。
ボクの知識だとファイルを介してのデータ連携しか思いつかなかったので、もっとスマートな方法はないものかと社内AIに聞いてみた。
そしたら、VBAからHTTPを使って、GASをWebアプリにして、doPostで送る方法を教えてくれた。
GAS側にトリガ設定をする必要もなく、全てのデータをVBAから受け取るので、GAS側でメールアドレスや、チャットのWebhook URLを管理する必要もないし、実装も割と簡単そうだったので、この方法を採用することにした。
サンプルコードをAIに教えてもらい、実行してみると、上手く行かない。
色々調べると、セキュリティの関係でプログラムからのHTTPリクエストをGASが受け取る前にGoogleさんてかWebサーバ?が破棄してることがわかった。
他にも、googleフォームを偽装して、送信する方法も教えてもらったけど、これもやっぱりHTTPなので、届かなかった。
なかなか画期的な方法だと思ったんだけど、結局使えなかった。
仕方がないので、きょうのところは、JSONにしたデータをファイルにしてGoogleドライブに置いて、GAS側は、ポーリングでファイルをスキャンして、見つけたら読み取って、内容によりメールやチャットを飛ばすことにした。
ただ、今までは、ツールごとにVBAとGASでやり取りをしていた(宛先はGAS側で管理)けど、送り先もVBAからもらうようにすることで、GAS側はどのツールからも一元的にこの送信ツールで処理できることになる。
今までよりも、ちょっとはスマートになるかも。
ここに至るまで1日掛かったけど、少しは得るものがあった。
--
No comments:
Post a Comment