マガジンのカバー画像

GAS

7
結構ノウハウが貯まってきているのでGoogleAppsScriptのTipsを書いていきます。https://github.com/Tokifujp/gas_samples
運営しているクリエイター

記事一覧

GitLabからのメンションをSlackメンションに置換するProxyなGAS

GitLabからのメンションをSlackメンションに置換するProxyなGAS

GitlLab/GitHubをIncoming Webhooks連携して通知させると便利なのですが、Slackとユーザー識別子が異なるためSlackのメンションにはなりません。今回はもうちょっと痒いとこに手を伸ばすHackです。

うまく行けば以下のように毎日眠れなくなりメンションが飛んできます。

注意点何千人もメンバーがいる組織では使えないかもしれません(小分けしたらイケる)

できるだけ公開

もっとみる
GoogleフォームからSlackに投稿する

GoogleフォームからSlackに投稿する

ある日…

みんなでSlackに投稿する何かを作りたい

そう相談されました。うん、そういう体験をすることが楽しかったりしますよね。その時はGoogleスプレッドシートのとある列に何かを書いてボタンを押すとSlackに投稿されるといったものを作ったのですが、以下記事を参考にして、具体的に何をしたらいいのかわからなかったことが発端でした。

まぁ、わかる具体的な活用方法は今後記事にしていければとは思

もっとみる
[WIP] GASでTimeTree APIを触るサンプル

[WIP] GASでTimeTree APIを触るサンプル

個人的にはGoogle Calendar(G Suiteだし)なんですが、家族がなぜかTimeTreeじゃないと予定管理してくれないので我が家ではTimeTreeを使っています。

さて、TimeTree APIはまだ一部不便なところもあって、自分が実現したい機能を実装するにはまだ少し足りない感じがしています。この記事では特に何かを実現するものとまではなっていませんのでWIPとさせていただきます。

もっとみる
GASからSlackのincoming-webhooksを利用して任意のchannelに投稿する

GASからSlackのincoming-webhooksを利用して任意のchannelに投稿する

早速連携を書いてみましょう。王道中の王道とも言えますがSlackの任意のChannelにGASから書き込んでみましょう。

Slack側での準備この記事では「時藤家」というWorkspaceに gas_test というChannelを作ってそこにGASから投稿させます。ご自身はご自身の任意のWorkspace及びChannelに置き換えてお考えください。

Channelにincoming-web

もっとみる
GASを初回実行する時になぜ認証確認するのか

GASを初回実行する時になぜ認証確認するのか

非エンジニアの方から結構この事案について突っ込まれることが多いので書いておきたいと思います。

なぜ認証確認するのかGASに限らず認証確認は色んなサービスやアプリによって昨今のwebセキュリティでは…

1. 誰が
2. 何を
3. どうするものなのか

を本人に確認してから実行するということを同意を得ることが必須となっております。GASは内部・外部問わず何らかのリソース(資産)にアクセスする際に

もっとみる
GASの実行時間のQuota(制限)について

GASの実行時間のQuota(制限)について

背景GASはとてもお手軽で便利なのですが、重い処理や時間を要する処理を実行するのは苦手です。もちろん、コードの書き方や工夫でチート?することは可能ですが、Googleが定めているQuota(制限)がありますので、GASで処理を書くにあたって参考にしていただければと思います。

Quotaを読み解く前に…Googleアカウントの種類について説明しておく必要があります。Googleアカウントには主に以

もっとみる
GASでアクセスキーやトークンの情報をPropertiesService.getScriptProperties().getProperty()で扱う例

GASでアクセスキーやトークンの情報をPropertiesService.getScriptProperties().getProperty()で扱う例

背景Google Apps Script(GAS)で外部サービスと連携する際などに接続するためのアクセスキーやトークンなどといった情報を直接コードに記載してしまうケースがサンプルなどで見られる時があります。

// 値をベタ書きしている例var destinationConsumerKey = "**************************";var destinationConsumer

もっとみる