go微信开发sdk-简单使用_已设置图床

go微信开发sdk-简单使用

GitHub - silenceper/wechat: WeChat SDK for Go (微信SDK:简单、易用)

使用的sdk为上述的,这边给出快速的项目实例

复制代码
git clone https://github.com/gowechat/example.git

简单的项目结构

这边简单用docker跑一个redis

复制代码
version: '3'
services:
  redis:
    image: redis:latest
    ports:
      - "6379:6379"
    command: ["redis-server", "--requirepass", ""]

在微信公众平台可以获取到必要的信息,注意申请接口权限(微信认证)

实例

本人项目需要操作公众号,这里给出一些基本的操作的实例

在克隆基本的项目地址后

完成配置和redis的开启,可以做到指定功能的获取

使用redis(推荐)

复制代码
// 在这里已经设置了全局cache,则在具体获取公众号/小程序等操作实例之后无需再设置,设置即覆盖
// 在这里已经设置了全局cache,则在具体获取公众号/小程序等操作实例之后无需再设置,设置即覆盖
func InitWechat() *wechat.Wechat {
	wc := wechat.NewWechat()
	redisOpts := &cache.RedisOpts{
		Host:        config.GVA_CONFIG.Redis.Host,
		Password:    config.GVA_CONFIG.Redis.Password,
		Database:    config.GVA_CONFIG.Redis.Database,
		MaxActive:   config.GVA_CONFIG.Redis.MaxActive,
		MaxIdle:     config.GVA_CONFIG.Redis.MaxIdle,
		IdleTimeout: config.GVA_CONFIG.Redis.IdleTimeout,
	}
	ctx := context.Background()
	redisCache := cache.NewRedis(ctx, redisOpts)

	//redisCache := cache.NewRedis(redisOpts)
	wc.SetCache(redisCache)
	return wc
}
func Wx() {
	wc := InitWechat()

	cfg := &offConfig.Config{
		AppID:     "",
		AppSecret: "",
		Token:     "xxx",
	}
	//officialAccount := wc.GetOfficialAccount(cfg)
	oa := wc.GetOfficialAccount(cfg)
	fmt.Println(oa.GetAccessToken())
	u := oa.GetUser()
	us, _ := u.ListUserOpenIDs()
	if us == nil {
		fmt.Print("heellwdjwd")
	}
	fmt.Println(us.Data.OpenIDs)
}

使用内存的场合(不推荐)

复制代码
package main

import (
    "fmt"
    wechat "github.com/silenceper/wechat/v2"
    "github.com/silenceper/wechat/v2/cache"
    offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
)
func main() {
    wc := wechat.NewWechat()
    //这里本地内存保存access_token,也可选择redis,memcache或者自定cache
    memory := cache.NewMemory()
    cfg := &offConfig.Config{
        AppID:     "",
        AppSecret: "",
        Token:     "xxx",
        Cache: memory,
    }
    oa := wc.GetOfficialAccount(cfg)
    fmt.Println(oa.GetAccessToken())
    u := oa.GetUser()
    us, _ := u.ListUserOpenIDs()
    if us == nil {
        fmt.Print("获取用户列表失败")
    }
    //fmt.Println("获取到的openid列表为",us.Data)
    fmt.Println("获取到的openid列表为", us.Data.OpenIDs)
    fmt.Println("获取到的openid总数为", us.Total)

}
相关推荐
思麟呀6 分钟前
Linux的基础IO流
linux·运维·服务器·开发语言·c++
星释7 分钟前
Rust 练习册 :Pythagorean Triplet与数学算法
开发语言·算法·rust
星释11 分钟前
Rust 练习册 :Nth Prime与素数算法
开发语言·算法·rust
lkbhua莱克瓦241 小时前
Java基础——集合进阶3
java·开发语言·笔记
码事漫谈1 小时前
智能体颠覆教育行业调研报告:英语、编程、语文、数学学科应用分析
后端
蓝-萧1 小时前
使用Docker构建Node.js应用的详细指南
java·后端
多喝开水少熬夜1 小时前
Trie树相关算法题java实现
java·开发语言·算法
QT 小鲜肉1 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
码事漫谈1 小时前
《C语言点滴》——笑着入门,扎实成长
后端
lsx2024062 小时前
MySQL WHERE 子句详解
开发语言