Skip to content

Commit

Permalink
doc: rewrite comments
Browse files Browse the repository at this point in the history
  • Loading branch information
syd committed Apr 16, 2024
1 parent 5de8080 commit 57b01dd
Show file tree
Hide file tree
Showing 10 changed files with 349 additions and 146 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.20'
cache-dependency-path: |
${{ env.GOPATH }}/${{ env.package }}/go.mod
${{ env.GOPATH }}/${{ env.package }}/go.sum
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.20'
cache-dependency-path: ${{ env.cache }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v4
Expand Down
4 changes: 2 additions & 2 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This is an example .goreleaser.yml file with some sane defaults.
# Make sure to check the documentation at http://goreleaser.com
project_name: "oceanengine"
project_name: "wxworkfinancesdk"
before:
hooks:
# You may remove this if you don't use go modules.
Expand All @@ -10,7 +10,7 @@ before:
builds:
- skip: true
archives:
- id: oceanengine
- id: wxworkfinancesdk
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func main() {
if err != nil {
log.Fatalln(err)
}
defer clt.Free()
defer clt.Destroy()
var (
seq uint64
limit uint64 = 1000
Expand Down Expand Up @@ -59,7 +59,7 @@ func main() {
if msg.MessageType() == sdk.IMG_MSG {
var (
w = new(bytes.Buffer)
sdkField = msg.(sdk.ImageMessage).SdkFieldId
sdkField = msg.(sdk.ImageMessage).SdkFileId
)
err := clt.DownloadMedia(w, sdkField, proxy, passwd, timeout)
if err != nil {
Expand Down
15 changes: 10 additions & 5 deletions chatdata.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@ func (r ChatDataResponse) IsError() bool {

// ChatData 加密消息数据
type ChatData struct {
Seq uint64 `json:"seq,omitempty"` // 消息的seq值,标识消息的序号。再次拉取需要带上上次回包中最大的seq。Uint64类型,范围0-pow(2,64)-1
MsgId string `json:"msgid,omitempty"` // 消息id,消息的唯一标识,企业可以使用此字段进行消息去重。
PublickeyVer uint32 `json:"publickey_ver,omitempty"` // 加密此条消息使用的公钥版本号。
EncryptRandomKey string `json:"encrypt_random_key,omitempty"` // 使用publickey_ver指定版本的公钥进行非对称加密后base64加密的内容,需要业务方先base64 decode处理后,再使用指定版本的私钥进行解密,得出内容。
EncryptChatMsg string `json:"encrypt_chat_msg,omitempty"` // 消息密文。需要业务方使用将encrypt_random_key解密得到的内容,与encrypt_chat_msg,传入sdk接口DecryptData,得到消息明文。
// Seq 消息的seq值,标识消息的序号。再次拉取需要带上上次回包中最大的seq。Uint64类型,范围0-pow(2,64)-1
Seq uint64 `json:"seq,omitempty"`
// MsgId 消息id,消息的唯一标识,企业可以使用此字段进行消息去重。
MsgId string `json:"msgid,omitempty"`
// PublickeyVer 加密此条消息使用的公钥版本号。
PublickeyVer uint32 `json:"publickey_ver,omitempty"`
// EncryptRandomKey 使用publickey_ver指定版本的公钥进行非对称加密后base64加密的内容,需要业务方先base64 decode处理后,再使用指定版本的私钥进行解密,得出内容。
EncryptRandomKey string `json:"encrypt_random_key,omitempty"`
// EncryptChatMsg 消息密文。需要业务方使用将encrypt_random_key解密得到的内容,与encrypt_chat_msg,传入sdk接口DecryptData,得到消息明文。
EncryptChatMsg string `json:"encrypt_chat_msg,omitempty"`
}
15 changes: 12 additions & 3 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ func NewClient(corpId string, corpSecret string) (*Client, error) {
}, nil
}

// Free 释放sdk,和NewClient成对使用
func (c *Client) Free() {
// Destroy 释放sdk,和NewClient成对使用
func (c *Client) Destroy() {
C.DestroySdk(c.ptr)
}

Expand Down Expand Up @@ -103,7 +103,16 @@ func (c *Client) DecryptData(encryptKey string, encryptMsg string) (Message, err
buf := BufferPool()
defer BufferPoolRelease(buf)
c.GetContentFromSlice(msgSlice, buf)
r := ReaderPool(buf.Bytes())
bs := buf.Bytes()
// handle illegal escape character in text
for i := 0; i < len(bs); {
if bs[i] < 0x20 {
bs = append(bs[:i], bs[i+1:]...)
continue
}
i++
}
r := ReaderPool(bs)
defer ReaderPoolRelease(r)
var baseMessage BaseMessage
decoder := json.NewDecoder(r)
Expand Down
8 changes: 5 additions & 3 deletions error.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ const (

// Error SDK Error结构体
type Error struct {
ErrCode int `json:"errcode,omitempty"` // 错误代码
ErrMsg string `json:"errmsg,omitempty"` // 错误说明
Hint string `json:"hint,omitempty"`
// ErrCode 错误代码
ErrCode int `json:"errcode,omitempty"`
// ErrMsg 错误说明
ErrMsg string `json:"errmsg,omitempty"`
Hint string `json:"hint,omitempty"`
}

// Error implement error interface
Expand Down
60 changes: 60 additions & 0 deletions example/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package main

import (
"bytes"
"fmt"
"log"

sdk "github.com/bububa/WeWorkFinanceSDK"
)

func main() {
// CorpId 企业ID
corpId := "wwd08c8e7c775ab44d"
corpSecret := "zJ6k0naVVQ--gt9PUSSEvs03zW_nlDVmjLCTOTAfrew"
clt, err := sdk.NewClient(corpId, corpSecret)
if err != nil {
log.Fatalln(err)
}
defer clt.Destroy()
var (
seq uint64
limit uint64 = 1000
proxy = ""
passwd = ""
timeout = 300
)
for {
chatsData, err := clt.GetChatData(seq, limit, proxy, passwd, timeout)
if err != nil {
log.Fatalln(err)
}
if len(chatsData) == 0 {
break
}
// iterate chatsData
for _, data := range chatsData {
// update seq with chatdata.Seq for next loop
seq = data.Seq
// decrypt chat data
msg, err := clt.DecryptData(data.EncryptRandomKey, data.EncryptChatMsg)
if err != nil {
log.Fatalln(err)
continue
}
fmt.Printf("msg: %+v\n", msg)
if msg.MessageType() == sdk.IMG_MSG {
var (
w = new(bytes.Buffer)
sdkField = msg.(sdk.ImageMessage).SdkFileId
)
err := clt.DownloadMedia(w, sdkField, proxy, passwd, timeout)
if err != nil {
log.Fatalln(err)
continue
}
log.Printf("download mediadata, len:%d bytes\n", w.Len())
}
}
}
}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module github.com/bububa/WeWorkFinanceSDK

go 1.18
go 1.20
Loading

0 comments on commit 57b01dd

Please sign in to comment.