From 7353996e9ce1258c4e845f93ffee811de82f2f78 Mon Sep 17 00:00:00 2001 From: Syd Xu Date: Fri, 21 Jun 2024 17:04:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(oauth):=20=E6=96=B0=E5=A2=9E=E2=80=9C?= =?UTF-8?q?=E6=8B=89=E5=8F=96token=E4=B8=8B=E6=8E=88=E6=9D=83=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E8=B4=A6=E6=88=B7=E2=80=9D=E6=8E=A5=E5=8F=A3=EF=BC=9A?= =?UTF-8?q?/rest/openapi/oauth2/authorize/approval/list=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E6=8B=89=E5=8F=96=E5=B7=B2=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + api/oauth/approval_list.go | 21 ++++++++++++ ...cess_token_response.go => access_token.go} | 23 +++++++++++++ model/oauth/access_token_request.go | 21 ------------ model/oauth/approval_list.go | 34 +++++++++++++++++++ 5 files changed, 79 insertions(+), 21 deletions(-) create mode 100644 api/oauth/approval_list.go rename model/oauth/{access_token_response.go => access_token.go} (56%) delete mode 100644 model/oauth/access_token_request.go create mode 100644 model/oauth/approval_list.go diff --git a/README.md b/README.md index 8c0af70..abf5c87 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ - 生成授权链接 [ Url(clt *core.SDKClient, req *oauth.UrlRequest) string ] - 获取AccessToken [ AccessToken(clt *core.SDKClient, authCode String) (*oauth.AccessTokenResponse, error) ] - 刷新Token [ RefreshToken(clt *core.SDKClient, refreshToken string) (*oauth.AccessTokenResponse, error)] + - 拉取token下授权广告账户接口 [ ApprovalList(clt *core.SDKClient, accessToken string) ([]uint64, error) ] - 账号服务 - 广告主 (api/advertiser) - 获取广告主信息 [ Info(clt *core.SDKClient, accessToken string, advertiserID int64) (*advertiser.Info, error) ] diff --git a/api/oauth/approval_list.go b/api/oauth/approval_list.go new file mode 100644 index 0000000..67da0bb --- /dev/null +++ b/api/oauth/approval_list.go @@ -0,0 +1,21 @@ +package oauth + +import ( + "github.com/bububa/kwai-marketing-api/core" + "github.com/bububa/kwai-marketing-api/model/oauth" +) + +// ApprovalList 拉取token下授权广告账户接口 +func ApprovalList(clt *core.SDKClient, accessToken string) ([]uint64, error) { + req := &oauth.ApprovalListRequest{ + AppID: clt.AppID(), + Secret: clt.Secret(), + AccessToken: accessToken, + } + var resp oauth.ApprovalListResponse + err := clt.Post("", req, &resp) + if err != nil { + return nil, err + } + return resp.Details, nil +} diff --git a/model/oauth/access_token_response.go b/model/oauth/access_token.go similarity index 56% rename from model/oauth/access_token_response.go rename to model/oauth/access_token.go index 22426ce..c27de6f 100644 --- a/model/oauth/access_token_response.go +++ b/model/oauth/access_token.go @@ -1,5 +1,28 @@ package oauth +import "encoding/json" + +// AccessTokenRequest 获取AccessToken APIRequest +type AccessTokenRequest struct { + // AppID 申请应用后快手返回的 app_id + AppID uint64 `json:"app_id,omitempty"` + // Secret 申请应用后快手返回的 secret + Secret string `json:"secret,omitempty"` + // AuthCode 授权时返回的 auth_code + AuthCode string `json:"auth_code,omitempty"` +} + +// Url implement PostRequest interface +func (r AccessTokenRequest) Url() string { + return "oauth2/authorize/access_token" +} + +// Encode implement PostRequest interface +func (r AccessTokenRequest) Encode() []byte { + buf, _ := json.Marshal(r) + return buf +} + // AccessTokenResponse 获取AccessToken APIResponse type AccessTokenResponse struct { // AccessToken 用于验证权限的token diff --git a/model/oauth/access_token_request.go b/model/oauth/access_token_request.go deleted file mode 100644 index fc915e6..0000000 --- a/model/oauth/access_token_request.go +++ /dev/null @@ -1,21 +0,0 @@ -package oauth - -import "encoding/json" - -// AccessTokenRequest 获取AccessToken APIRequest -type AccessTokenRequest struct { - AppID uint64 `json:"app_id,omitempty"` - Secret string `json:"secret,omitempty"` - AuthCode string `json:"auth_code,omitempty"` -} - -// Url implement PostRequest interface -func (r AccessTokenRequest) Url() string { - return "oauth2/authorize/access_token" -} - -// Encode implement PostRequest interface -func (r AccessTokenRequest) Encode() []byte { - buf, _ := json.Marshal(r) - return buf -} diff --git a/model/oauth/approval_list.go b/model/oauth/approval_list.go new file mode 100644 index 0000000..1668312 --- /dev/null +++ b/model/oauth/approval_list.go @@ -0,0 +1,34 @@ +package oauth + +import "encoding/json" + +// ApprovalListRequest 拉取token下授权广告账户接口 API Request +type ApprovalListRequest struct { + // AppID 申请应用后快手返回的 app_id + AppID uint64 `json:"app_id,omitempty"` + // Secret 申请应用后快手返回的 secret + Secret string `json:"secret,omitempty"` + // AccessToken 查询的 access_token + AccessToken string `json:"access_token,omitempty"` + // PageNo 分页页码,必填 + PageNo int `json:"page_no,omitempty"` + // PageSize 分页每页展示条数,必填,最大值为1000 + PageSize int `json:"page_size,omitempty"` +} + +// Url implement PostRequest interface +func (r ApprovalListRequest) Url() string { + return "oauth2/authorize/approval/list" +} + +// Encode implement PostRequest interface +func (r ApprovalListRequest) Encode() []byte { + buf, _ := json.Marshal(r) + return buf +} + +// ApprovalListResponse 拉取token下授权广告账户接口 API Response +type ApprovalListResponse struct { + // Details 查询获得的广告主 ID + Details []uint64 `json:"details,omitempty"` +}