こんにちは、エンジニアのクロ(@kro96_xr)です。 今回はタイトルの構成で署名付きURLを生成する仕組みを作ってみました。 はじめに ことの発端は「GithubActionsでビルドした成果物を社内メンバーがダウンロードできるようにしたい」という要望です。 素直に実装するのであれば、AWS Cognitoを使ってクライアントアプリケーションを実装することになりそうです。 しかし、 極力工数はかけずに作れるのであればその方が望ましい 厳密なチェックも不要 という要件もあったので、Slackのinteractive messagesを使って署名付きURLを都度発行する方法を検証してみました。…
(最近SlackとGASの記事ばっか書いてる気がする...) はじめに 以下を解消するのが目的です 朝に雨が降ってると退勤時に雨が降ってようが降ってまいが、会社の傘立てに傘を忘れる確率が100%(降ってるときは傘立てが事務所にあるから取りに戻る必要がある) 傘を一つしか持ってないから2日連続で雨のときに無事死亡する 2つ目はずぶ濡れ出勤すれば済む問題なので1つ目を解消します:) あと、スマホと傘を常時一緒に持っているわけではないのでスマートタグは使いません どうしたか 弊社では退勤時、Slackの#timecardに「お先に失礼します。」という投稿をする慣習があります。 その慣習を使って、投稿…
通常のテキストはこんな感じ↓ これを↓にする GASのコード 感想 最初attachmentsに渡す値を配列にしてなかったから送信されなくてハマった。。。 個人的な用途としてはcolor, title, title_linkだけで十分かも。(footer_iconとかいらんくね?) 参考 api.slack.com 株式会社エイルシステムではWebエンジニア・モバイルアプリエンジニアを募集しています。 実務経験がなくてもOKです。ご興味のある方は弊社HPよりご連絡ください。
前回はfunctionオブジェクトについてお話ししました。 今回からやっとブロックの中の関数についてです。 まずはスプレッドシートを呼び出す関数 この記事はどんな人向け? GAS初心者がスプレッドシートをもとにbotで期限をSlack通知した際、ここが困ったなーという部分が結構あったので、そのあたりを軸にまとめてみました。 そのため、同じく初心者で困っている人向けの記事です。 前回、functionオブジェクトをふたつ使っているとお話ししましたが、今回からはfunctionオブジェクトのalertDateの中身(ブロック)を見ていきます。 SpreadsheetAppオブジェクト alertD…
前回はライブラリの設定を行いました。 この記事はどんな人向け? GAS初心者がスプレッドシートをもとにbotで期限をSlack通知した際、ここが困ったなーという部分が結構あったので、そのあたりを軸にまとめてみました。 そのため、同じく初心者で困っている人向けの記事です。 今回はfunctionオブジェクトについてです。 関数とは コードでよくみるfunction(関数)、でも関数ってなんなのかよくわからないですよね…。 関数について辞書をみてみるとこうあります。 与えられた文字や数値に対し、定められた処理を行って結果を返す機能のこと。表計算ソフトやデータベースソフト、プログラミング言語などで利…
今回はいよいよコードを書いていきます。 この記事はどんな人向け? GAS初心者がスプレッドシートをもとにbotで期限をSlack通知した際、ここが困ったなーという部分が結構あったので、そのあたりを軸にまとめてみました。 そのため、同じく初心者で困っている人向けの記事です。 どういった通知をしたいか まず、どういったスプレッドシートの表の期限をbotで通知させたいかですが、 私が作りたかったものは以下のような備品の返却予定日でした。 利用者のいない備品があったり、返却予定日が未定な状態の人がいたりという表から 返却予定日のあるものだけ、返却予定日になったら 管理番号と使用者をbotでSlackに…
GAS初心者がスプレッドシートをもとにbotで期限をSlack通知した際、ここが困ったなーという部分が結構あったので、そのあたりを軸にまとめてみました。 そのため、同じく初心者で困っている人向けの記事です。 今回はSlack Appの作成についてです。 インデグレーションについて 今回のコードではIncoming WebHooksは使いません。 詳しくは後述する為なのことやらの人は読み飛ばして大丈夫ですが、ぐぐって出てくる記事が高確率でIncoming WebHooksを使っていてIncoming WebHooksを使わない方法でコードが書いてある記事になかなか辿り着けず自分が結構困ったので、…
こんにちは! ふるいプログラマーです。 4月に入って新年度が始まりましたね、これから新社会人として働き始める方や、入学される方などいらっしゃると思いますが、自分は特に変動がないので、何か身の回りの物を変えてみようと思い切って眼鏡を買い変えてみました。 今まで使っていた眼鏡はなんだかんだ7年くらいの付き合いだったので新鮮な感じですね… というわけで、新しいことへの挑戦もしてみました! 「SlackのAPIを叩いてみる」です いくつかその時にいくつか詰まった点もあったので、軽く紹介しようと思います。 1.APIを叩く際のトークンの適応方法 何気に序盤で引っ掛かったポイントその1ですね。 スラックの…
はじめに ハウテレビジョンでソフトウェアエンジニアをやっている山本と申します。 弊社ではインフラエンジニア以外でも、AWSを扱えるようになることを目的とし、エンジニア全員にAWSのSandbox環境が用意されています。今回はこのAWSのSandbox環境とServerless Frameworkを利用して、お手軽にAWS LambdaとSlack botの検証環境を作ったお話です。 AWS Sandbox環境について まずAWS Sandboxについてです。これは弊社においてAWSの習熟や検証を目的として用意された環境で、エンジニア一人ひとりに用意されています。 検証環境といえば部門やチーム単…
今までの振り返り 2019年振り返り 2020年振り返り 2021年振り返り 2022年振り返り ハイライト 家庭崩壊の危機!(今のところ無事) 子供が3歳になった!立派! エンジニアマネージャー ざっくりどんな年 前半は仕事で忙殺。大きなプロジェクトのリリース、巻取り、採用、マネジメントなど諸々の作業が一気にのしかかってきた時期だった。とりあえず軌道に乗るまでマンパワーで頑張って、乗せた。この時期になぜかしらんけど何が来てもだいたい解決できることを覚えた。 中盤は割りと安定していた。二度目の大きなプロジェクトも無事リリースして稼働し始め、プライベートも旅行行ったり兄貴の筋肉の大会を観戦したり…
こんにちは。データ・AI戦略部 SREチームの小野です。2020年8月に入社してから早3年。SREエンジニアとして、日々業務改善に励んでいます。 ここ一年ほど、SRE業務の一環で組織作りに挑戦しています。SREエンジニアの責務は自社サービスを安定稼働させ障害に強い基盤を作ることであり、どちらかというと「システム」に焦点が置かれがちです。しかし、個人的にはシステムを運用するメンバーのマネジメント(ピープルマネジメント)を含めた組織作りも重要だと考えています。なぜなら、どれだけ最先端で素晴らしいシステムを構築してもそれを運用するメンバーの行動次第では、障害につながる恐れがあるためです。 私にとって…
前の記事で調べていた時にschedule triggerを使えば無料枠でもcron的な事ができそうだったので移植で素振りしてみる yuzu441.hateblo.jp cloudflare workersでslack botを動かすには@slack/botは動かないらしいので、以下の記事で紹介されているものを使う zenn.dev 各種slack用のトークンは上記の記事を参照 cron triggerについて developers.cloudflare.com wrangler.ymlなどにcron設定を書くとその設定に従って以下の用に定義した関数を実行してくれる 時間設定 wrangler.…
はじめに こんにちは、@_mkazutaka です。 今回は、メールの内容をChatGPTで解析してSpreadsheetとNotionに転記する方法について紹介します。 背景 Explazaでは、営業の問い合わせのメールから、業界、相談者の部署、相談者の役職、導入時期、会社規模、予算、対象などのいくつかの項目を取得し、その内容をSpreadsheetに転記し、Spreadsheet上で各営業ごとのステータスを管理しています。またステータス以上の詳しい状況や実際にお客さまと話した内容等は、Spreadsheetとは別でNotionの一つのページにまとめています。 このため、メールを受け取るごと…
こんにちは、CE課(コーポレートエンジニアリング課)の江利です。 Legendsじゃない方のApexの話です。 この記事ではいくつかあるSalesforceからSlackへ投稿する方法のうちのひとつとしてApexからSlackAPI経由する方法を紹介したいと思います。想定要件は下記となります。 既に実装済みのビジネスロジックにSlack通知を追加したい。 Slack通知を追加する箇所が複数あり対象となる投稿先チャンネルが異なる。 自分で書いていてこんなこと言うのもアレですが、かなりピンポイントな要件ですね。とは言え既にかなりApexで作り込まれた組織であるが故にテストコードも大量に実装済みで、…
こんにちは、CTO室AI推進部のこたろうです。 今回は、7/24(月) ~ 7/25(火)の二日間を通して開催されたCTO室主催のCTO Office Generative AI Hackathonに参加したのでその報告です! このハッカソンでは、「Improve Productivity using Generative AI」をテーマに、ChatGPTを使ったアプリケーションについて個人・チームで開発・発表を行いました。 1日目はオープニングセッションやアイデアのショートプレゼンテーションを行いました。2日目はアプリの実装と最終発表、懇親会を行いました。始まる前は「2日間しかないのに形にで…
宮下(mizzy)です。 Amazon SNSからSlackに通知する仕組みを導入した話(概要編)でご紹介した仕組みの実装面について解説します。 TerraformによるAWS上のリソース設定 SNS TopicとLambda Functionの関連づけ Slack通知用SNS Topicの作成と、実際に通知を行うLambda Functionの関連づけは、Terraformコードでこのように記述しています。 ただし、Lambda FunctionはTerraformではなくecspressoで管理しているため、Lambda Functionの情報はData Sourceで読み込んでいます。 …
宮下(mizzy)です。 タレンティオ社内で、Amazon SNSにPublishするとSlackに通知できる仕組みを導入しました。このような仕組みの事例は検索するとたくさんでてきますが、タレンティオではこうやってますよ、という例としてご紹介したいと思います。 このエントリでは、利用者視点で具体的にどのようにSNSにPublishし、どのような通知が得られるのか、について解説します。実装の詳細についてはAmazon SNSからSlackに通知する仕組みを導入した話(実装編)で解説します。 通知の投げ方 AWS CLIを利用する場合は、次のようにSNSにPublishします。 aws sns p…
前提 jestを使っている jest.config.jsのglobalsに定義されている 参考 https://stackoverflow.com/questions/71987339/google-app-script-typescript-and-jest-testing-mocking-googleappscript-object-n 2日に及び、4時間くらいで判明したこと declareするといい(その場しのぎ感) jest.config.js module.exports = { globals: { SlackApp: { create: () => { return { getC…
はじめに Optunaを用いたコーヒーのハンドドリップ最適化をしようとしていて(下記参照)、 moblog.hatenablog.jp いまSlackBotに落とし込んだところ (下記参照)。 moblog.hatenablog.jp その環境構築とかをまとめる。 はじめに システムの概要 環境構築 SlackBotの準備 (Workspaceでの設定) スコープの設定 SlackBotの設定テスト ngrokでローカルホストとngrokのグローバルIPをマッピング SlackAppのEventへ登録 Google Spreadsheet の用意 Botの動作環境 インストール SlackBo…
TL; DL Optunaを通じたハンドドリップ・コーヒー抽出のパラメータ最適化(Human in the Cofee Loop)をスマホから実行したかったので(コーヒー淹れるたびPCでスクリプトを実行するのがくそ面倒)、Slack botにリクエストを投げて実行出来るようにした。 以下の記事の続きである。moblog.hatenablog.jp 環境構築の詳細については別記事で詳細を示している*1。 やりたいこと メッセージをSlackbotのいるChannelに投げると(DMでもいい)、Bot君が今までのレシピと評価を考慮して(OptunaにTell)、よさげなレシピを返してくれる (Op…