Skip to content

Commit

Permalink
Merge branch 'release/v1.0.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
bububa committed Feb 28, 2024
2 parents a9c780b + f0ee5ee commit 56b09b4
Show file tree
Hide file tree
Showing 77 changed files with 2,289 additions and 89 deletions.
38 changes: 36 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,41 @@

## API

- Oauth2.0授权(api/oauth)
- 获取授权链接 [ URL(ctx context.Context, clt *core.SDKClient, req *oauth.URLRequest) string ]
- 获取token [ AccessToken(ctx context.Context, clt *core.SDKClient, req *oauth.AccessTokenRequest) (*oauth.AccessToken, error) ]
- 刷新token [ RefreshToken(ctx context.Context, clt *core.SDKClient, req *oauth.RefreshTokenRequest) (*oauth.AccessToken, error) ]

- 账户服务
- 广告主(api/advertiser)
- 获取accessToken [ AccessToken(ctx context.Context, clt *core.SDKClient, advertiserID uint64) (*oauth.AccessToken, error) ]
- 获取账号余额接口 [ BalanceInfo(ctx context.Context, clt *core.SDKClient, req *advertiser.BalanceInfoRequest, accessToken string) (*advertiser.Balance, error) ]

- 广告投放
- 广告单元(api/unit)
- 获取单元列表接口 [ List(ctx context.Context, clt *core.SDKClient, req *unit.ListRequest, accessToken string) (*unit.ListResult, error) ]

- 数据报表
- 离线报表(api/report/offline)
- 账户层级离线报表数据 [ Advertiser(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) ]
- 计划层级离线报表数据 [ Campaign(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) ]
- 单元层级离线报表数据 [ Unit(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) ]
- 创意层级离线报表数据 [ Creativity(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) ]
- 关键词层级离线报表数据 [ Keyword(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) ]
- 实时报表(api/report/realtime)
- 账户层级实时数据 [ Advertiser(ctx context.Context, clt *core.SDKClient, req *realtime.AdvertiserRequest, accessToken string) (*report.Metric, error) ]
- 计划层级实时数据 [ Campaign(ctx context.Context, clt *core.SDKClient, req *realtime.CampaignRequest, accessToken string) (*realtime.CampaignResponse, error) ]
- 单元层级实时数据 [ Unit(ctx context.Context, clt *core.SDKClient, req *realtime.UnitRequest, accessToken string) (*realtime.UnitResponse, error) ]
- 创意层级实时数据 [ Creativity(ctx context.Context, clt *core.SDKClient, req *realtime.CreativityRequest, accessToken string) (*realtime.CreativityResponse, error) ]
- 关键词层级实时数据 [ Keyword(ctx context.Context, clt *core.SDKClient, req *realtime.KeywordRequest, accessToken string) (*realtime.KeywordResponse, error) ]

- 转化追踪(api/conversion)
- 生成点击监测链接 [ ClickMonitorLink(ctx context.Context, req string) (string, error) ]
- 转化回传 [ Conversion(ctx context.Context, clt *core.SDKClient, req *conversion.Request) error ]
- 生成点击监测链接 [ ClickMonitorLink(ctx context.Context, clt *core.SDKClient, req string) (string, error) ]
- 外链落地页
- 外链线索数据回传 [ Conversion(ctx context.Context, clt *core.SDKClient, req *conversion.Request, accessToken string) error ]
- 线索转化数据回传 [ AuroraLeads(ctx context.Context, clt *core.SDKClient, req *conversion.AuroraLeadsRequest) error ]
- 聚光落地页
- 聚光落地页线索数据回传 [ HawkingLeads(ctx context.Context, clt *core.SDKClient, req *conversion.HawkingLeadsRequest) error ]
- 口令码
- APP口令码数据回传 [ App(ctx context.Context, clt *core.SDKClient, req *conversion.AppRequest) error ]

22 changes: 22 additions & 0 deletions api/advertiser/access_token.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package advertiser

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model"
"github.com/bububa/spotlight-mapi/model/oauth"
)

// AccessToken 获取accessToken
func AccessToken(ctx context.Context, clt *core.SDKClient, advertiserID uint64) (*oauth.AccessToken, error) {
req := model.CommonRequest{
AdvertiserID: advertiserID,
Method: "oauth.getAccessToken",
}
var ret oauth.AccessTokenResponse
if err := clt.Post(ctx, "/common", req, &ret, ""); err != nil {
return nil, err
}
return ret.Data, nil
}
17 changes: 17 additions & 0 deletions api/advertiser/balance_info.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package advertiser

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/advertiser"
)

// BalanceInfo 获取账号余额接口
func BalanceInfo(ctx context.Context, clt *core.SDKClient, req *advertiser.BalanceInfoRequest, accessToken string) (*advertiser.Balance, error) {
var resp advertiser.BalanceInfoResponse
if err := clt.Get(ctx, "/jg/account/balance/info", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
2 changes: 2 additions & 0 deletions api/advertiser/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package advertiser 广告主相关
package advertiser
13 changes: 13 additions & 0 deletions api/conversion/app.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package conversion

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/conversion"
)

// App APP口令码数据回传
func App(ctx context.Context, clt *core.SDKClient, req *conversion.AppRequest) error {
return clt.Post(ctx, "/app", req, nil, "")
}
13 changes: 13 additions & 0 deletions api/conversion/aurora_leads.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package conversion

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/conversion"
)

// AuroraLeads 线索转化数据回传
func AuroraLeads(ctx context.Context, clt *core.SDKClient, req *conversion.AuroraLeadsRequest) error {
return clt.Post(ctx, "/common", req, nil, "")
}
1 change: 1 addition & 0 deletions api/conversion/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ import (
// 1.展现回传事件的统计信息,例如回传”商品成单“时间,我们会by计划/创意等维度呈现订单量、订单成本、转化率等指标
// 2.数据进入您的广告模型,优化您的广告效果。
func Conversion(ctx context.Context, clt *core.SDKClient, req *conversion.Request) error {
req.AppID = clt.AppID()
return clt.Post(ctx, "/conversion", req, nil, "")
}
13 changes: 13 additions & 0 deletions api/conversion/hawking_leads.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package conversion

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/conversion"
)

// HawkingLeads 聚光落地页线索数据回传
func HawkingLeads(ctx context.Context, clt *core.SDKClient, req *conversion.HawkingLeadsRequest) error {
return clt.PostHawkingLeads(ctx, req)
}
20 changes: 20 additions & 0 deletions api/oauth/access_token.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package oauth

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/oauth"
)

// AccessToken 获取Token
// 利用授权码 auth_code,请求小红书服务器,获取 access_token 和 refresh_token 及当前账户的广告主 ID。
func AccessToken(ctx context.Context, clt *core.SDKClient, req *oauth.AccessTokenRequest) (*oauth.AccessToken, error) {
req.AppID = clt.AppID()
req.Secret = clt.Secret()
var resp oauth.AccessTokenResponse
if err := clt.Post(ctx, "/oauth2/access_token", req, &resp, ""); err != nil {
return nil, err
}
return resp.Data, nil
}
2 changes: 2 additions & 0 deletions api/oauth/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package oauth 授权相关
package oauth
20 changes: 20 additions & 0 deletions api/oauth/refresh_token.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package oauth

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/oauth"
)

// RefreshToken 刷新Token
// 请求小红书服务器,刷新 access_token 和 refresh_token 及 token 过期时间。
func RefreshToken(ctx context.Context, clt *core.SDKClient, req *oauth.RefreshTokenRequest) (*oauth.AccessToken, error) {
req.AppID = clt.AppID()
req.Secret = clt.Secret()
var resp oauth.AccessTokenResponse
if err := clt.Post(ctx, "/oauth2/refresh_token", req, &resp, ""); err != nil {
return nil, err
}
return resp.Data, nil
}
15 changes: 15 additions & 0 deletions api/oauth/url.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package oauth

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/oauth"
"github.com/bububa/spotlight-mapi/util"
)

// URL 生成oauth授权链接
func URL(ctx context.Context, clt *core.SDKClient, req *oauth.URLRequest) string {
req.AppID = clt.AppID()
return util.StringsJoin(core.OAUTH_URL, "?", req.Encode())
}
2 changes: 2 additions & 0 deletions api/report/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package report 报表相关
package report
17 changes: 17 additions & 0 deletions api/report/offline/advertiser.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package offline

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/offline"
)

// Advertiser 账户层级离线数据
func Advertiser(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) {
var resp offline.Response
if err := clt.Post(ctx, "/jg/data/report/offline/account", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
17 changes: 17 additions & 0 deletions api/report/offline/campaign.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package offline

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/offline"
)

// Campaign 广告计划层级离线数据
func Campaign(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) {
var resp offline.Response
if err := clt.Post(ctx, "/jg/data/report/offline/campaign", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
17 changes: 17 additions & 0 deletions api/report/offline/creativity.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package offline

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/offline"
)

// Creativity 广告创意层级离线数据
func Creativity(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) {
var resp offline.Response
if err := clt.Post(ctx, "/jg/data/report/offline/creativity", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
2 changes: 2 additions & 0 deletions api/report/offline/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package offline 离线报表
package offline
17 changes: 17 additions & 0 deletions api/report/offline/keyword.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package offline

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/offline"
)

// Keyword 关键词层级离线数据
func Keyword(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) {
var resp offline.Response
if err := clt.Post(ctx, "/jg/data/report/offline/keyword", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
17 changes: 17 additions & 0 deletions api/report/offline/unit.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package offline

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/offline"
)

// Unit 广告单元层级离线数据
func Unit(ctx context.Context, clt *core.SDKClient, req *offline.Request, accessToken string) (*offline.ReportList, error) {
var resp offline.Response
if err := clt.Post(ctx, "/jg/data/report/offline/unit", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
18 changes: 18 additions & 0 deletions api/report/realtime/advertiser.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package realtime

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report"
"github.com/bububa/spotlight-mapi/model/report/realtime"
)

// Advertiser 账户层级实时数据
func Advertiser(ctx context.Context, clt *core.SDKClient, req *realtime.AdvertiserRequest, accessToken string) (*report.DataReportDTO, error) {
var resp realtime.AdvertiserResponse
if err := clt.Post(ctx, "/jg/data/report/realtime/account", req, &resp, accessToken); err != nil {
return nil, err
}
return resp.Data, nil
}
17 changes: 17 additions & 0 deletions api/report/realtime/campaign.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package realtime

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/realtime"
)

// Campaign 计划层级实时数据
func Campaign(ctx context.Context, clt *core.SDKClient, req *realtime.CampaignRequest, accessToken string) (*realtime.CampaignResponse, error) {
resp := new(realtime.CampaignResponse)
if err := clt.Post(ctx, "/jg/data/report/realtime/campaign", req, resp, accessToken); err != nil {
return nil, err
}
return resp, nil
}
17 changes: 17 additions & 0 deletions api/report/realtime/creativity.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package realtime

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/realtime"
)

// Creativity 创意层级实时数据
func Creativity(ctx context.Context, clt *core.SDKClient, req *realtime.CreativityRequest, accessToken string) (*realtime.CreativityResponse, error) {
resp := new(realtime.CreativityResponse)
if err := clt.Post(ctx, "/jg/data/report/realtime/creativity", req, resp, accessToken); err != nil {
return nil, err
}
return resp, nil
}
3 changes: 3 additions & 0 deletions api/report/realtime/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Package realtime 实时报表
package realtime

17 changes: 17 additions & 0 deletions api/report/realtime/keyword.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package realtime

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/realtime"
)

// Keyword 关键词层级实时数据
func Keyword(ctx context.Context, clt *core.SDKClient, req *realtime.KeywordRequest, accessToken string) (*realtime.KeywordResponse, error) {
resp := new(realtime.KeywordResponse)
if err := clt.Post(ctx, "/jg/data/report/realtime/keyword", req, resp, accessToken); err != nil {
return nil, err
}
return resp, nil
}
17 changes: 17 additions & 0 deletions api/report/realtime/unit.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package realtime

import (
"context"

"github.com/bububa/spotlight-mapi/core"
"github.com/bububa/spotlight-mapi/model/report/realtime"
)

// Unit 单元层级实时数据
func Unit(ctx context.Context, clt *core.SDKClient, req *realtime.UnitRequest, accessToken string) (*realtime.UnitResponse, error) {
resp := new(realtime.UnitResponse)
if err := clt.Post(ctx, "/jg/data/report/realtime/unit", req, resp, accessToken); err != nil {
return nil, err
}
return resp, nil
}
2 changes: 2 additions & 0 deletions api/unit/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package unit 广告单元相关
package unit

0 comments on commit 56b09b4

Please sign in to comment.