欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Go語(yǔ)言實(shí)現(xiàn)發(fā)送微信群消息

 更新時(shí)間:2024年01月26日 09:43:44   作者:愛發(fā)白日夢(mèng)的后端  
這篇文章主要為大家詳細(xì)介紹了如何使用Go語(yǔ)言實(shí)現(xiàn)發(fā)送微信群消息,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

背景

最近的某個(gè)副業(yè)需要我寫一個(gè)腳本(腳本內(nèi)容就不說(shuō)了),需要通知群成員,盡快地做出響應(yīng)。所以去找一下 Go 是否有這樣的類庫(kù)。

在這個(gè)腳本里面,我只需要發(fā)送信息的能力即可。

openwechat

在尋找了一會(huì)之后發(fā)現(xiàn) https://github.com/eatmoreapple/openwechat 這個(gè)庫(kù),這個(gè)庫(kù)支持以下能力:

  • 消息回復(fù)、給指定對(duì)象(好友、群組)發(fā)送文本、圖片、文件、emoji表情等消息
  • 熱登陸(無(wú)需重復(fù)掃碼登錄)、自定義消息處理、文件下載、消息防撤回
  • 獲取對(duì)象信息、設(shè)置好友備注、拉好友進(jìn)群等

這很明顯已經(jīng)滿足我的需求了,畢竟我的需求超簡(jiǎn)單的!

例子

那我們立刻使用項(xiàng)目中的 README.md 例子來(lái)測(cè)試一下。

package main

import (
 "fmt"

 "github.com/eatmoreapple/openwechat"
)

func main() {
 bot := openwechat.DefaultBot(openwechat.Desktop) // 桌面模式

 // 注冊(cè)消息處理函數(shù)
 bot.MessageHandler = func(msg *openwechat.Message) {
  if msg.IsText() && msg.Content == "ping" {
   msg.ReplyText("pong")
  }
 }
 // 注冊(cè)登陸二維碼回調(diào)
 bot.UUIDCallback = openwechat.PrintlnQrcodeUrl

 // 登陸
 if err := bot.Login(); err != nil {
  fmt.Println(err)
  return
 }

 // 獲取登陸的用戶
 self, err := bot.GetCurrentUser()
 if err != nil {
  fmt.Println(err)
  return
 }

 // 獲取所有的好友
 friends, err := self.Friends()
 fmt.Println(friends, err)

 // 獲取所有的群組
 groups, err := self.Groups()
 fmt.Println(groups, err)

 // 阻塞主goroutine, 直到發(fā)生異?;蛘哂脩糁鲃?dòng)退出
 bot.Block()
}

這段代碼的內(nèi)容比較簡(jiǎn)單:

  • 在瀏覽器中顯示二維碼
  • 用戶掃碼模擬微信登錄
  • 獲取掃碼微信的信息
  • 獲取用戶所有的好友
  • 獲取用戶所有的群組

但是這里有兩個(gè)問題需要注意:

模式只能選擇桌面模式,當(dāng)我使用網(wǎng)頁(yè)版模式的時(shí)候會(huì)報(bào)以下錯(cuò)誤:login forbidden: try to login with desktop mode

我猜測(cè)是因?yàn)槲⑿拍沁呉呀?jīng)不運(yùn)營(yíng)微信網(wǎng)頁(yè)版了

獲取的不是所有的群聊

從 issue[1] 找到解答:需要將群聊保存到通訊錄才行。

實(shí)現(xiàn)對(duì)特定群發(fā)送文本消息

因?yàn)樽髡叻庋b得還算不錯(cuò),發(fā)送文本消息非常簡(jiǎn)單,就一個(gè)函數(shù)的事情。

func main() {
 bot := openwechat.DefaultBot(openwechat.Desktop) // 桌面模式

 // 注冊(cè)登陸二維碼回調(diào)
 bot.UUIDCallback = openwechat.PrintlnQrcodeUrl

 // 登陸
 if err := bot.Login(); err != nil {
  fmt.Println(err)
  return
 }

 // 獲取登陸的用戶
 self, err := bot.GetCurrentUser()
 if err != nil {
  fmt.Println(err)
  return
 }

 // 獲取所有的群組
 groups, err := self.Groups()
 for _, group := range groups {
  if group.NickName == "愛發(fā)白日夢(mèng)的后端" {
   _, err = self.SendTextToGroup(group, "Hello!??!群里的朋友大家好呀?。?!")
   if err != nil {
    panic(err)
   }
  }
 }

 // 阻塞主goroutine, 直到發(fā)生異?;蛘哂脩糁鲃?dòng)退出
 bot.Block()
}

核心的函數(shù)就是 SendTextToGroup 這個(gè)方法,直接調(diào)用即可發(fā)送群消息了。

效果如下:

總結(jié)

雖然我目前的需求已經(jīng)被滿足了,不過這個(gè)庫(kù)里面的好多功能我都沒有去用過,也沒有在這里介紹,感興趣的同學(xué)可以自行深入去了解。

到此這篇關(guān)于使用Go語(yǔ)言實(shí)現(xiàn)發(fā)送微信群消息的文章就介紹到這了,更多相關(guān)Go發(fā)送微信群消息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Go1.18中的泛型編程

    淺談Go1.18中的泛型編程

    本文主要介紹了Go1.18中的泛型編程,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • go install/build生成的文件命名和路徑操作

    go install/build生成的文件命名和路徑操作

    這篇文章主要介紹了go install/build生成的文件命名和路徑操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-12-12
  • golang實(shí)現(xiàn)PHP數(shù)組特性的方法

    golang實(shí)現(xiàn)PHP數(shù)組特性的方法

    我們做業(yè)務(wù)過程中,對(duì)應(yīng)強(qiáng)類型語(yǔ)言使用有個(gè)痛點(diǎn),就是使用變量之前一定要定義變量類型,那么本文就來(lái)介紹一下golang實(shí)現(xiàn)PHP數(shù)組特性的方法
    2021-12-12
  • go mock server的簡(jiǎn)易實(shí)現(xiàn)示例

    go mock server的簡(jiǎn)易實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了go mock server的簡(jiǎn)易實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • golang之資源釋放/異常錯(cuò)誤處理解析

    golang之資源釋放/異常錯(cuò)誤處理解析

    這篇文章主要為大家介紹了golang之資源釋放/異常錯(cuò)誤處理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Golang使用CGO與Plugin技術(shù)運(yùn)行加載C動(dòng)態(tài)庫(kù)

    Golang使用CGO與Plugin技術(shù)運(yùn)行加載C動(dòng)態(tài)庫(kù)

    這篇文章主要介紹了Golang使用CGO與Plugin技術(shù)運(yùn)行加載C動(dòng)態(tài)庫(kù),Golang?程序在運(yùn)行時(shí)加載C動(dòng)態(tài)庫(kù)的技術(shù),跳過了Golang項(xiàng)目編譯階段需要鏈接C動(dòng)態(tài)庫(kù)的過程,提高了Golang項(xiàng)目開發(fā)部署的靈活性
    2022-07-07
  • golang實(shí)現(xiàn)分頁(yè)算法實(shí)例代碼

    golang實(shí)現(xiàn)分頁(yè)算法實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于golang實(shí)現(xiàn)分頁(yè)算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Golang在整潔架構(gòu)基礎(chǔ)上實(shí)現(xiàn)事務(wù)操作

    Golang在整潔架構(gòu)基礎(chǔ)上實(shí)現(xiàn)事務(wù)操作

    這篇文章在 go-kratos 官方的 layout 項(xiàng)目的整潔架構(gòu)基礎(chǔ)上,實(shí)現(xiàn)優(yōu)雅的數(shù)據(jù)庫(kù)事務(wù)操作,需要的朋友可以參考下
    2024-08-08
  • Golang的循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句詳解

    Golang的循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句詳解

    循環(huán)語(yǔ)句為了簡(jiǎn)化程序中有規(guī)律的重復(fù)性操作,需要用到循環(huán)語(yǔ)句,和其他大多數(shù)編程語(yǔ)言一樣,GO的循環(huán)語(yǔ)句有for循環(huán),不同的是沒有while循環(huán),而循環(huán)控制語(yǔ)句可以改變循環(huán)語(yǔ)句的執(zhí)行過程,下面給大家介紹下go循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句的相關(guān)知識(shí),一起看看吧
    2021-11-11
  • Go語(yǔ)言實(shí)現(xiàn)RSA加解密算法詳解

    Go語(yǔ)言實(shí)現(xiàn)RSA加解密算法詳解

    隨著互聯(lián)網(wǎng)的高速發(fā)展,人們對(duì)安全的要求也越來(lái)越高,加解密也變得越來(lái)越重要,本文主要為大家介紹了Go語(yǔ)言中實(shí)現(xiàn)RSA加解密與簽名驗(yàn)證算法,希望對(duì)大家有所幫助
    2023-06-06

最新評(píng)論