20210114のGoに関する記事は3件です。

LINEBotで画像、動画、位置情報を受けとったら処理を実行する@Go

以前作ったオウム返しするLINEBotをいじくり回しました。
https://qiita.com/endo-yuki/items/1a0ddfe857674be6044b
ドキュメントを参考にして、画像、動画、位置情報を受けっとったとき、メッセージを返す処理を追加しました。
https://pkg.go.dev/github.com/line/line-bot-sdk-go/linebot#TemplateAction

サンプルソースコード

main.go
~~~~~~~~~~~~~~(省略)~~~~~~~~~~~~~~~~~~~~~~
            case *linebot.ImageMessage:
                if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage("画像ですね")).Do(); err != nil {
                    log.Print(err)
                }
            case *linebot.VideoMessage:
                if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage("動画ですね")).Do(); err != nil {
                    log.Print(err)
                }
            case *linebot.LocationMessage:
                if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage("位置情報ですね")).Do(); err != nil {
                    log.Print(err)
                }

~~~~~~~~~~~~~~(省略)~~~~~~~~~~~~~~~~~~~~~~

感想

最近投稿をさぼっていたら、奥さんに三日坊主と罵られました。
将来的にはBotに送信された画像をオンラインストレージに保存したいと思ってます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Go + Air でホットリロード

はじめに

Goでファイル変更したときにホットリロードさせるツールとして、
cosmtrek/airを使ってみたいと思います。

環境

go: v1.15.3

プロジェクト作成

% mkdir sample && cd sample
% go mod init
% go mod init sample

特にここはなんでも良いですが、フレームワークとしてginを使います。

% go get -u github.com/gin-gonic/gin
% vi main.go
package main

import "github.com/gin-gonic/gin"

func main()  {
  r := gin.Default()
  r.GET("/", func(c *gin.Context) {
    c.JSON(200, gin.H{
      "message": "レスポンス",
    })
  })

  r.Run()
}

go run

go runで起動してみます。

% go run main.go

立ち上がったら別のウィンドウで、

% curl http://localhost:8080
{"message":"レスポンス"}

airで動かす

導入

go get -u github.com/cosmtrek/air
% which air
<GOPATH>/go/bin/air

% air -v
  __    _   ___
 / /\  | | | |_)
/_/--\ |_| |_| \_ v1.12.1 // live reload for Go apps, with Go1.14.0

airが入ったら、go runのかわりにairコマンドで動かします。

$ air

起動したところでmain.goを書き換えます。

package main

import "github.com/gin-gonic/gin"

func main()  {
  r := gin.Default()
  r.GET("/", func(c *gin.Context) {
    c.JSON(200, gin.H{
      "message": "レスポンスだよ",
    })
  })

  r.Run()
}
% curl http://localhost:8080
{"message":"レスポンスだよ"}

ホットリロードできていました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

自宅内の見守りカメラをアップデートした:サマリー

はじめに

この記事は、私の以前の投稿「自宅内見守りカメラをOpenCV+HTML+JavaScriptで簡易に構成!」の続編です。

  • RasberryPiでシステムを実働させた際の不具合修正のため、プログラム構成を変更
  • 試用してみて必要と感じた機能の追加(キャリブレーション機能など)
  • UIの変更

内容が多岐にわたるため、下記の通り分割して記事にしていきたいと思います。

Index

項目 内容
ハードウェア準備編 RasberryPiのカメラモジュールを使うまで
お試し動作で課題にぶつかった編 パフォーマンスの課題にぶつかりました
構成を変更しよう編 自分の勉強も兼ねてGo言語を用いて作り直しをします
動作確認および機能追加編 明るさ調整機能など、必要と感じた機能を追加します
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む