WeWorkFinanceSDK
v1.3.0
Le SDK d'archivage des conversations Enterprise WeChat (basé sur le package SDK officiel de la version Enterprise WeChat C) ne prend actuellement en charge que l'utilisation du SDK actuel dans linux
.
https://open.work.weixin.qq.com/api/doc/90000/90135/91774
1. Installez le module Go
allez chercher -u github.com/NICEXAI/WeWorkFinanceSDK
2. Copiez libWeWorkFinanceSdk_C.so
du dossier github.com/NICEXAI/WeWorkFinanceSDK/lib
vers le dossier par défaut de la bibliothèque de liens dynamiques du système, ou copiez-le dans n'importe quel dossier et exécutez la commande export LD_LIBRARY_PATH=$(pwd)
pour définir le adresse de recherche de la bibliothèque de liens dynamiques
3. Introduisez module
dans le projet et utilisez-le
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
}
}
}