forked from suguo/godingtalk
edit
This commit is contained in:
parent
476e0fe4a2
commit
36d97c097e
52
api_sns.go
52
api_sns.go
|
|
@ -9,6 +9,26 @@ import (
|
|||
|
||||
type SnsUserInfoResponse struct {
|
||||
OAPIResponse
|
||||
Userid string
|
||||
Name string
|
||||
Mobile string
|
||||
Tel string
|
||||
Remark string
|
||||
Order int
|
||||
IsAdmin bool
|
||||
IsBoss bool
|
||||
IsLeader bool
|
||||
Active bool
|
||||
Department []int
|
||||
Position string
|
||||
Email string
|
||||
OrgEmail string
|
||||
Avatar string
|
||||
Extattr interface{}
|
||||
}
|
||||
|
||||
type SnsUserResponse struct {
|
||||
OAPIResponse
|
||||
|
||||
CorpInfo []struct {
|
||||
CorpName string `json:"corp_name"`
|
||||
|
|
@ -27,24 +47,28 @@ type SnsUserInfoResponse struct {
|
|||
}
|
||||
|
||||
//SnsUserInfo 获取用户授权的个人信息详情
|
||||
func (c *DingTalkClient) SnsUserInfo(code string) (SnsUserInfoResponse, error) {
|
||||
ts := strconv.FormatInt(time.Now().UnixNano()/1000000, 10)
|
||||
func (c *DingTalkClient) SnsUserInfo(unionid string) (*SnsUserInfoResponse, error) {
|
||||
var udata struct {
|
||||
OAPIResponse
|
||||
UserID string `json:"userid"`
|
||||
}
|
||||
|
||||
uparams := url.Values{}
|
||||
uparams.Add("unionid", unionid)
|
||||
err := c.httpRPC("user/getUseridByUnionid", uparams, nil, &udata)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var userdata SnsUserInfoResponse
|
||||
params := url.Values{}
|
||||
params.Add("accessKey", c.AppKey)
|
||||
params.Add("timestamp", ts)
|
||||
params.Add("signature", encodeSHA256(ts, c.AppSecret))
|
||||
params.Add("userid", udata.UserID)
|
||||
err = c.httpRPC("user/get", params, nil, &userdata)
|
||||
return &userdata, err
|
||||
|
||||
body := struct {
|
||||
Code string `json:"tmp_auth_code"`
|
||||
}{code}
|
||||
|
||||
var data SnsUserInfoResponse
|
||||
err := c.httpRequest("sns/getuserinfo_bycode", params, body, &data)
|
||||
return data, err
|
||||
}
|
||||
|
||||
//SnsUser 获取用户授权的个人信息
|
||||
func (c *DingTalkClient) SnsUser(code string) (SnsUserInfoResponse, error) {
|
||||
func (c *DingTalkClient) SnsUser(code string) (SnsUserResponse, error) {
|
||||
ts := strconv.FormatInt(time.Now().UnixNano()/1000000, 10)
|
||||
params := url.Values{}
|
||||
params.Add("accessKey", c.AppKey)
|
||||
|
|
@ -55,7 +79,7 @@ func (c *DingTalkClient) SnsUser(code string) (SnsUserInfoResponse, error) {
|
|||
Code string `json:"tmp_auth_code"`
|
||||
}{code}
|
||||
|
||||
var data SnsUserInfoResponse
|
||||
var data SnsUserResponse
|
||||
err := c.httpRequest("sns/getuserinfo_bycode", params, body, &data)
|
||||
return data, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,17 @@ import (
|
|||
)
|
||||
|
||||
func TestSnsUserInfo(t *testing.T) {
|
||||
userinfo, err := c.SnsUserInfo("f9f9ba22256136f29a7fb3dd5d26c24c")
|
||||
userinfo, err := c.SnsUserInfo("rCn0WRcRdrnWRBsDyWEQKwiEiE")
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
fmt.Println(userinfo)
|
||||
}
|
||||
|
||||
func TestSnsUser(t *testing.T) {
|
||||
user, err := c.SnsUser("89f253f7c25333878f27d66f5f0f7bc9")
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
fmt.Println(user)
|
||||
}
|
||||
|
|
|
|||
10
go.mod
10
go.mod
|
|
@ -1,13 +1,3 @@
|
|||
module myschools.me/suguo/godingtalk
|
||||
|
||||
go 1.13
|
||||
|
||||
require (
|
||||
github.com/google/go-github v17.0.0+incompatible
|
||||
github.com/google/go-querystring v1.0.0 // indirect
|
||||
github.com/ipandtcp/godingtalk v0.0.0-20180410032244-ca3d6ac197fb
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
||||
google.golang.org/api v0.10.0
|
||||
google.golang.org/appengine v1.6.4
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue