首页 > 其他分享 >用Go语言写了一个加班就自动发信息给老婆的脚本

用Go语言写了一个加班就自动发信息给老婆的脚本

时间:2024-04-09 09:00:12浏览次数:9  
标签:脚本 提醒 语言 信息 加班 Twilio Go

用Go语言写了一个加班就自动发信息给老婆的脚本。。。

原创 磊丰 Go语言圈 2024-04-09 08:30 美国 听全文 Go语言圈 Go语言开发者的学习好助手,分享Go语言知识,技术技巧,学习与交流Go语言开发经验,互动才有助于技术的提升,每天5分钟,助你GO语言技术快乐成长 156篇原创内容 公众号
学习与交流:Go语言技术微信群

商务合作加微信:LetsFeng

 

现在就开始你的Go语言学习之旅吧!人生苦短,let’s Go.


图片

图片

Goland 全家桶激活码,永久有效,亲测可用,限时免费

获取链接地址:https://web.52shizhan.cn

下面是一个简单的用 Go 语言编写的加班自动发信息、下班自动提醒的代码示例。该代码使用了 time 包来处理时间,以及 github.com/robfig/cron 包来处理定时任务的调度。

思路与设计:

  1. 使用 github.com/robfig/cron 包创建两个定时任务,一个用于加班提醒,一个用于下班提醒。

  2. 加班提醒定时任务在指定时间发送加班提醒信息。

  3. 下班提醒定时任务在指定时间发送下班提醒信息。

  4. 使用第三方短信服务发送信息,这里假设使用 Twilio 服务。

package main

import (
    "fmt"
    "log"
    "time"

    "github.com/robfig/cron"
    "github.com/sfreiberg/gotwilio"
)

// 发送加班提醒信息
func sendOvertimeMessage() {
    // 这里假设使用 Twilio 发送短信,你需要替换成自己的 Twilio 账号信息
    accountSid := "your_account_sid"
    authToken := "your_auth_token"
    from := "+1234567890" // 你的 Twilio 电话号码
    to := "+1234567890"   // 接收提醒信息的电话号码

    twilio := gotwilio.NewTwilioClient(accountSid, authToken)

    message := "加班提醒:今天加班记得注意身体,辛苦了!"
    _, exception, err := twilio.SendSMS(from, to, message, "", "")
    if err != nil {
        log.Fatalf("Error sending SMS: %s", err)
    }
    if exception != nil {
        log.Fatalf("Error sending SMS: %s", exception.Message)
    }

    fmt.Println("加班提醒信息已发送!")
}

// 发送下班提醒信息
func sendOffWorkMessage() {
    // 这里假设使用 Twilio 发送短信,你需要替换成自己的 Twilio 账号信息
    accountSid := "your_account_sid"
    authToken := "your_auth_token"
    from := "+1234567890" // 你的 Twilio 电话号码
    to := "+1234567890"   // 接收提醒信息的电话号码

    twilio := gotwilio.NewTwilioClient(accountSid, authToken)

    message := "下班提醒:下班时间到啦,记得安全回家哦!"
    _, exception, err := twilio.SendSMS(from, to, message, "", "")
    if err != nil {
        log.Fatalf("Error sending SMS: %s", err)
    }
    if exception != nil {
        log.Fatalf("Error sending SMS: %s", exception.Message)
    }

    fmt.Println("下班提醒信息已发送!")
}

func main() {
    // 创建定时任务调度器
    c := cron.New()

    // 加班提醒定时任务,每天晚上18:00执行
    c.AddFunc("0 18 * * *", sendOvertimeMessage)

    // 下班提醒定时任务,每天晚上19:00执行
    c.AddFunc("0 19 * * *", sendOffWorkMessage)

    // 启动定时任务调度器
    c.Start()

    // 程序运行,阻塞主 goroutine
    select {}
}

请注意替换代码中的 Twilio 相关账号信息和电话号码,并确保你的 Twilio 账号有足够的余额用于发送短信。此外,需要在你的 Go 项目中导入 github.com/sfreiberg/gotwilio 包。

 

文章首发:

 

 

 

 

 

 

 

 

更多相关Go语言的技术文章或视频教程,请关注本公众号获取并查看,感谢你的支持与信任!

 

学Go语言哪些事儿275 学Go语言哪些事儿 · 目录 上一篇Go 语言精编面试50题 ,题题精彩! 阅读 302 Go语言圈 ​ 喜欢此内容的人还喜欢   JSON 性能差?优化手段&替代方案     AndroidPub 不看的原因   Docker自建WPS Office平台     院长技术 不看的原因   升级 kubernetes 集群 v1.28.2 到 v1.29.3 版本     IT万事通 不看的原因   写留言            

人划线

标签:脚本,提醒,语言,信息,加班,Twilio,Go
From: https://www.cnblogs.com/cheyunhua/p/18123064

相关文章

  • 【go】golang中的通道
    通道:channel名词:在goroutine中通信的管道注意:任何时候,同一时刻只能有一个goroutine访问通道进行发送和获取数据通道的顺序:遵循先入先出的规则通道的定义//定义一个通道var变量名chan数据类型//比如:varintChchanint64varstrChchanstringvarmapChchanm......
  • 基于融合语义信息改进的内容推荐算法。Improved content recommendation algorithm in
    引言路漫漫其修远兮,吾将上下而求索。每天一篇论文,做更好的自己。本文读的这篇论文为发表于2023年5月28日的一篇名为《基于融合语义信息改进的内容推荐算法》(基于融合语义信息改进的内容推荐算法)的文章,文章主要介绍了基于内容的推荐技术在电子商务和教育领域的广泛应用,以及传统基......
  • Django框架之form组件
    一、前戏需求:写一个注册功能获取用户名和密码,利用form表单提交数据在后端判断用户名和密码是否符合一定的条件用户名不能含有三国演义密码不少于三位1、前端<formaction=""method="post"><p>username:<inputtype="text"name="username"><......
  • Django框架之Cookie和Session
    一、cookie与session的发展史Cookie和Session是Web开发中常用的两种机制,用于在客户端和服务器之间存储和管理用户信息。1、Cookie的发展史:1994年:由Netscape公司的工程师LouMontulli发明。最初的目的是为了解决HTTP协议的状态管理问题,使网站能够在浏览器端存储和读取用户信息......
  • Django框架之分页器使用
    一、问题描述针对上一篇章的批量插入数据,我们会发现一个很严重的问题,将所有数据都放到前端页面展示的时候一千多条数据放在了一页,这样太不方便,就像书本一样,不可能把所有内容都放在一页吧。所以我们可以也想书本一样,尝试做分页处理二、分页推导首先需要明确的是,get请求/post请......
  • RuntimeError: requested profile "F:\code\chromium_git\chromium\src\chrome\
    RuntimeError:requestedprofile"F:\code\chromium_git\chromium\src\chrome\build\pgo_profiles\chrome-win64-5481-1675874756-509946de85f2a6f58f14f39a5e26a0ae82afaec0.profdata"doesn'texist,pleasemakesure"checkout_pgo_profiles......
  • python高级脚本
    python高级脚本自动化测试脚本importunittestclassTestCalculator(unittest.TestCase):deftest_addition(self):self.assertEqual(2+2,4)deftest_subtraction(self):self.assertEqual(5-3,1)if__name__=="__main__":un......
  • ArangoDB:探索多模型数据库的魅力
            ArangoDB是一款多模型数据库,它支持图形、文档和键值数据存储,这使得它在处理各种类型的数据和应用场景时具有极大的灵活性。以下是对ArangoDB的介绍,包括其特点优势、安装步骤以及基本使用命令和代码。        ArangoDB的特点与优势        1......
  • go modules
    目录在一个空文件夹下,初始化一个Module$gomodinitexamplego:creatingnewgo.mod:moduleexample此时,在当前文件夹下生成了go.mod,这个文件记录当前模块的模块名以及所有依赖包的版本。接着,我们在当前目录下新建文件main.go,添加如下代码:packagemainimport( "......
  • go reflect
    goreflect反射核心反射的核心是两个对象,分别是reflect.Type和reflect.Value。它们分别代表了go语言中的类型和值。我们可以通过reflect.TypeOf和reflect.ValueOf来获取到一个变量的类型和值。funcmain(){ vara=1 fmt.Println(reflect.ValueOf(a)) fmt.Print......