WeWorkFinanceSDK
v1.3.0
SDK การเก็บถาวรการสนทนา WeChat ระดับองค์กร (อิงตามแพ็คเกจ SDK อย่างเป็นทางการของเวอร์ชัน Enterprise WeChat C) ปัจจุบันรองรับการใช้ SDK ปัจจุบันในสภาพแวดล้อม linux
เท่านั้น
https://open.work.weixin.qq.com/api/doc/90000/90135/91774
1. ติดตั้งโมดูล go
ไปรับ -u github.com/NICEXAI/WeWorkFinanceSDK
2. คัดลอกไฟล์ไลบรารีไดนามิก libWeWorkFinanceSdk_C.so
จากโฟลเดอร์ github.com/NICEXAI/WeWorkFinanceSDK/lib
ไปยังโฟลเดอร์เริ่มต้นไลบรารีลิงก์ไดนามิกของระบบ หรือคัดลอกไปยังโฟลเดอร์ใดๆ และดำเนินการคำสั่ง export LD_LIBRARY_PATH=$(pwd)
เพื่อตั้งค่า ที่อยู่การค้นหาไลบรารีลิงก์แบบไดนามิก
3. แนะนำ module
เข้าสู่โครงการและใช้งาน
package main
import (
"bytes"
"fmt"
"github.com/NICEXAI/WeWorkFinanceSDK"
"io/ioutil"
"os"
"path"
)
func main () {
corpID := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
corpSecret := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
rsaPrivateKey := `
-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY-----
`
//初始化客户端
client , err := WeWorkFinanceSDK . NewClient ( corpID , corpSecret , rsaPrivateKey )
if err != nil {
fmt . Printf ( "SDK 初始化失败:%v n " , err )
return
}
//同步消息
chatDataList , err := client . GetChatData ( 0 , 100 , "" , "" , 3 )
if err != nil {
fmt . Printf ( "消息同步失败:%v n " , err )
return
}
for _ , chatData := range chatDataList {
//消息解密
chatInfo , err := client . DecryptData ( chatData . EncryptRandomKey , chatData . EncryptChatMsg )
if err != nil {
fmt . Printf ( "消息解密失败:%v n " , err )
return
}
if chatInfo . Type == "image" {
image := chatInfo . GetImageMessage ()
sdkfileid := image . Image . SdkFileID
isFinish := false
buffer := bytes. Buffer {}
index_buf := ""
for ! isFinish {
//获取媒体数据
mediaData , err := client . GetMediaData ( index_buf , sdkfileid , "" , "" , 5 )
if err != nil {
fmt . Printf ( "媒体数据拉取失败:%v n " , err )
return
}
buffer . Write ( mediaData . Data )
if mediaData . IsFinish {
isFinish = mediaData . IsFinish
}
index_buf = mediaData . OutIndexBuf
}
filePath , _ := os . Getwd ()
filePath = path . Join ( filePath , "test.png" )
err := ioutil . WriteFile ( filePath , buffer . Bytes (), 0666 )
if err != nil {
fmt . Printf ( "文件存储失败:%v n " , err )
return
}
break
}
}
}