- CBGetUserInfo

This commit is contained in:
gazebo
2019-04-28 15:28:26 +08:00
parent 99006a0fb8
commit 590c95e4fc
4 changed files with 70 additions and 27 deletions

View File

@@ -6,6 +6,25 @@ const (
MaxRemarkByteCount = 30
)
type CBUserInfo struct {
Subscribe int `json:"subscribe"`
OpenID string `json:"openid"`
Nickname string `json:"nickname"`
Sex int `json:"sex"`
Language string `json:"language"`
City string `json:"city"`
Province string `json:"province"`
Country string `json:"country"`
HeadImgURL string `json:"headimgurl"`
SubscribeTime int64 `json:"subscribe_time"`
UnionID string `json:"unionid"`
Remark string `json:"remark"`
TagIDList []int `json:"tagid_list"`
SubscribeScene string `json:"subscribe_scene"`
QRScene int `json:"qr_scene"`
QRSceneStr string `json:"qr_scene_str"`
}
func (a *API) CBSetToken(newToken string) bool {
curToken := a.CBGetToken()
if curToken != newToken {
@@ -62,3 +81,15 @@ func (a *API) CBUpdateRemark(userOpenID, remark string) (err error) {
_, err = a.AccessAPI("cgi-bin/user/info/updateremark", nil, string(utils.MustMarshal(bodyJson)))
return err
}
func (a *API) CBGetUserInfo(userOpenID string) (userInfo *CBUserInfo, err error) {
bodyJson := map[string]interface{}{
"openid": userOpenID,
"lang": "zh_CN",
}
result, err := a.AccessAPI("cgi-bin/user/info", bodyJson, "")
if err == nil {
err = utils.Map2StructByJson(result, &userInfo, false)
}
return userInfo, err
}

View File

@@ -1,6 +1,10 @@
package weixinapi
import "testing"
import (
"testing"
"git.rosy.net.cn/baseapi/utils"
)
func TestCBRetrieveToken(t *testing.T) {
result, err := api.CBRetrieveToken()
@@ -38,3 +42,11 @@ func TestCBUpdateRemark(t *testing.T) {
t.Log(err)
}
}
func TestCBGetUserInfo(t *testing.T) {
userInfo, err := api.CBGetUserInfo("oYN_ust9hXKEvEv0X6Mq6nlAWs_E")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(userInfo, false))
}

View File

@@ -6,6 +6,32 @@ import (
"git.rosy.net.cn/baseapi/utils"
)
type SNSTokenInfo struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
RefreshToken string `json:"refresh_token"`
OpenID string `json:"openid"`
Scope string `json:"scope"`
}
type SNSUserInfo struct {
OpenID string `json:"openid"`
NickName string `json:"nickname"`
Sex int `json:"sex"`
Province string `json:"province"`
City string `json:"city"`
Country string `json:"country"`
HeadImgURL string `json:"headimgurl"`
Privilege interface{} `json:"privilege"`
UnionID string `json:"unionid"`
}
type SessionInfo struct {
OpenID string `json:"openid"`
SessionKey string `json:"session_key"`
UnionID string `json:"unionid"`
}
func mapData2SNSToken(result map[string]interface{}) *SNSTokenInfo {
return &SNSTokenInfo{
AccessToken: utils.Interface2String(result["access_token"]),

View File

@@ -40,32 +40,6 @@ type API struct {
msgKey string
}
type SNSTokenInfo struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
RefreshToken string `json:"refresh_token"`
OpenID string `json:"openid"`
Scope string `json:"scope"`
}
type SNSUserInfo struct {
OpenID string `json:"openid"`
NickName string `json:"nickname"`
Sex int `json:"sex"`
Province string `json:"province"`
City string `json:"city"`
Country string `json:"country"`
HeadImgURL string `json:"headimgurl"`
Privilege interface{} `json:"privilege"`
UnionID string `json:"unionid"`
}
type SessionInfo struct {
OpenID string `json:"openid"`
SessionKey string `json:"session_key"`
UnionID string `json:"unionid"`
}
func New(appID, secret string, config ...*platformapi.APIConfig) *API {
curConfig := platformapi.DefAPIConfig
if len(config) > 0 {