You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pinduoduo/pdd.ddk.rp.prom.url.generat...

83 lines
4.3 KiB

2 years ago
package pinduoduo
import (
2 years ago
"context"
2 years ago
"encoding/json"
"go.dtapp.net/gorequest"
)
type RpPromUrlGenerateResponse struct {
RpPromotionUrlGenerateResponse struct {
ResourceList []struct {
Desc string `json:"desc"` // 活动描述
Url string `json:"url"` // 活动地址
} `json:"resource_list"`
UrlList []struct {
MobileShortUrl string `json:"mobile_short_url"` // 推广移动短链接对应出参mobile_url的短链接与mobile_url功能一致。
MobileUrl string `json:"mobile_url"` // 推广移动链接用户安装拼多多APP的情况下会唤起APP否则唤起H5页面
MultiGroupMobileShortUrl string `json:"multi_group_mobile_short_url"` // 推广多人团移动短链接
MultiGroupMobileUrl string `json:"multi_group_mobile_url"` // 推广多人团移动链接用户安装拼多多APP的情况下会唤起APP否则唤起H5页面
MultiGroupShortUrl string `json:"multi_group_short_url"` // 推广多人团短链接
MultiGroupUrl string `json:"multi_group_url"` // 推广多人团链接唤起H5页面
QqAppInfo struct {
AppId string `json:"app_id"` // 拼多多小程序id
BannerUrl string `json:"banner_url"` // Banner图
Desc string `json:"desc"` // 描述
PagePath string `json:"page_path"` // 小程序path值
QqAppIconUrl string `json:"qq_app_icon_url"` // 小程序icon
SourceDisplayName string `json:"source_display_name"` // 来源名
Title string `json:"title"` // 小程序标题
UserName string `json:"user_name"` // 用户名
} `json:"qq_app_info"` // qq小程序信息
SchemaUrl string `json:"schema_url"` // schema链接用户安装拼多多APP的情况下会唤起APP需客户端支持schema跳转协议
ShortUrl string `json:"short_url"` // 推广短链接对应出参url的短链接与url功能一致
Url string `json:"url"` // 普通推广长链接唤起H5页面
WeAppInfo struct {
AppId string `json:"app_id"` // 小程序id
BannerUrl string `json:"banner_url"` // Banner图
Desc string `json:"desc"` // 描述
PagePath string `json:"page_path"` // 小程序path值
SourceDisplayName string `json:"source_display_name"` // 来源名
Title string `json:"title"` // 小程序标题
UserName string `json:"user_name"` // 用户名
WeAppIconUrl string `json:"we_app_icon_url"` // 小程序icon
} `json:"we_app_info"` // 拼多多福利券微信小程序信息
} `json:"url_list"`
} `json:"rp_promotion_url_generate_response"`
}
type RpPromUrlGenerateError struct {
ErrorResponse struct {
ErrorMsg string `json:"error_msg"`
SubMsg string `json:"sub_msg"`
SubCode string `json:"sub_code"`
} `json:"error_response"`
}
type RpPromUrlGenerateResult struct {
Result RpPromUrlGenerateResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
Err error // 错误
Error RpPromUrlGenerateError // 错误结果
}
2 years ago
func newRpPromUrlGenerateResult(result RpPromUrlGenerateResponse, body []byte, http gorequest.Response, err error, error RpPromUrlGenerateError) *RpPromUrlGenerateResult {
2 years ago
return &RpPromUrlGenerateResult{Result: result, Body: body, Http: http, Err: err, Error: error}
}
// RpPromUrlGenerate 生成营销工具推广链接
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.rp.prom.url.generate
2 years ago
func (c *Client) RpPromUrlGenerate(ctx context.Context, notMustParams ...Params) *RpPromUrlGenerateResult {
2 years ago
// 参数
params := NewParamsWithType("pdd.ddk.rp.prom.url.generate", notMustParams...)
2 years ago
params.Set("p_id_list", []string{c.GetPid()})
2 years ago
// 请求
2 years ago
request, err := c.request(ctx, params)
2 years ago
// 定义
var response RpPromUrlGenerateResponse
err = json.Unmarshal(request.ResponseBody, &response)
var responseError RpPromUrlGenerateError
err = json.Unmarshal(request.ResponseBody, &responseError)
2 years ago
return newRpPromUrlGenerateResult(response, request.ResponseBody, request, err, responseError)
2 years ago
}