常见问题解答:
WalleV opened this issue · 1 comments
WalleV commented
V3支持“超时请求取消机制”
V3增加了context,可以通过context来控制timeout超时请求后,强制取消该词业务请求
// ------ 比如 强制取消获取部门列表接口 ------
ctx,cancel := context.WithTimeout(context.Background(), 1*time.Second)
dept,err := wechatWork.Department.List(ctx, id)
// ------ PowerLib中的单元测试 ------
func TestDataflow_WithContext(t *testing.T) {
df := InitBaseDataflow()
ctx, cancel := context.WithCancel(context.Background())
done := make(chan struct{}, 1)
go func() {
time.Sleep(time.Second * 1)
_, err := df.WithContext(ctx).Request()
if !errors.Is(err, context.Canceled) {
t.Error("cancel failed")
}
done <- struct{}{}
}()
cancel()
select {
case <-done:
}
}
初始化报错 illegal base64 data at input byte 0
这个是由于Token和AESKey没有配置导致的,这个在公众号、企业微信配置里面都有这个参数,用来消息回调解密用。如果暂时不用消息解密,随便设置一个字符串进去即可。
例如:
officialAccount.NewOfficialAccount(&officialAccount.UserConfig{
AppID: conf.OffiAccount.AppID, // 小程序、公众号或者企业微信的appid
Secret: conf.OffiAccount.AppSecret, // 商户号 appID
Token: "xxx",
AESKey: "xxx",
ResponseType: os.Getenv("response_type"),
Log: officialAccount.Log{
Level: "debug",
File: "./wechat.log",
},
Cache: cache,
HttpDebug: true,
Debug: false,
//"sandbox": true,
})
kakaisaname commented
不能随便设置AESKey和Token,随便设置会报错