douyinGo

package module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2021 License: GPL-3.0 Imports: 21 Imported by: 0

README

douyin-go 抖音Open API

1.安装
import douyinGo "github.com/zhangshuai/douyin-go"
2.使用

初始化

credentials := douyinGo.NewCredentials("CLIENT_KEY", "CLIENT_SECRET")
manager := douyinGo.NewManager(credentials, nil)

生成授权链接,获取授权码 /platform/oauth/connect/

oauthUrl := manager.OauthConnect(douyinGo.OauthParam{
    Scope: "user_info,mobile_alert,video.list,video.data,video.create,video.delete,data.external.user,data.external.item,aweme.share,fans.list,following.list,item.comment,star_top_score_display,fans.data,data.external.fans_source,data.external.fans_favourite",
    RedirectUri: "REDIRECT_URI",
})

获取AccessToken /oauth/access_token/

accessToken, err := manager.OauthAccessToken(douyinGo.OauthAccessTokenReq{
    Code: "CODE",
})

刷新access_token /oauth/refresh_token/

manager.OauthRenewRefreshToken(douyinGo.OauthRenewRefreshTokenReq{
    RefreshToken: "REFRESH_TOKEN",
})

刷新refresh_token /oauth/renew_refresh_token/

manager.OauthRenewRefreshToken(douyinGo.OauthRenewRefreshTokenReq{
    RefreshToken: "REFRESH_TOKEN",
})

生成client_token /oauth/client_token/

clientToken, err := manager.OauthClientAccessToken()

获取用户信息 /oauth/userinfo/

userInfo, err := manager.OauthUserinfo(douyinGo.OauthUserinfoReq{
    OpenId:      "OPEN_ID",
    AccessToken: "ACCESS_TOKEN",
})

// 解析手机号
mobile, err := manager.DecryptMobile("ENCRYPT_MOBILE")

获取粉丝列表 /fans/list/

list, err := manager.FansList(douyinGo.FansListReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Count:       10,
})

获取关注列表 /following/list/

list, err := manager.FollowingList(douyinGo.FollowingListReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Count:       10,
})

上传视频到文件服务器 /video/upload/

rs, err := manager.VideoUpload(douyinGo.VideoUploadReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    FilePath:    "FILE_PATH",
})

分片初始化上传 /video/part/init/

rs, err := manager.VideoPartUploadInit(douyinGo.VideoPartUploadInitReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
})

分片上传视频 /video/part/upload/

rs, err := manager.VideoPartUpload(douyinGo.VideoPartUploadReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    FilePath:    "FILE",
    UploadId:    "UPLOAD_ID",
    ChunkSize:   5 * 1024 * 1024,
    Workers:     4,
})

分片完成上传 /video/part/complete/

rs, err := manager.VideoUploadPartComplete(douyinGo.VideoUploadPartCompleteReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    UploadId:    "UPLOAD_ID",
})

创建抖音视频 /video/create/

rs, err := manager.VideoCreate(douyinGo.VideoCreateReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Body: douyinGo.VideoCreateBody{
        VideoId: "VIDEO_ID",
        Text:    "TITLE",
    },
})

删除授权用户发布的视频 /video/delete/

rs, err := manager.VideoDelete(douyinGo.VideoDeleteReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Body: douyinGo.VideoDeleteBody{
        ItemId: "VIDEO_ID",
    },
})

上传图片到文件服务器 /image/upload/

rs, err := manager.ImageUpload(douyinGo.ImageUploadReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    FilePath:    "FILE",
})

发布图片 /image/create/

rt, err := manager.ImageCreate(douyinGo.ImageCreateReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Body: douyinGo.ImageCreateBody{
        ImageId: "IMAGE_ID",
        Text:    "TITLE",
    },
})

查询授权账号视频列表 /video/list/

list, err := manager.VideoList(douyinGo.VideoListReq{
    OpenId:      "OPEN_ID",
    AccessToken: "ACCESS_TOKEN",
    Cursor:      0,
    Count:       10,
})

查询指定视频数据 /video/data/

rs, err := manager.VideoData(douyinGo.VideoDataReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Body: douyinGo.VideoDataBody{
        ItemIds: []string{"VIDEO_ID"},
    },
})

获取share-id /share-id/

rs, err := manager.AwemeShare(douyinGo.AwemeShareReq{
    AccessToken:  "CLIENT_TOKEN",
    NeedCallBack: true,
})

评论列表 /item/comment/list/

list, err := manager.ItemCommentList(douyinGo.ItemCommentListReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
    Cursor:      0,
    Count:       10,
})

评论回复列表 /item/comment/reply/list/

list, err := manager.ItemCommentReplyList(douyinGo.ItemCommentReplyListReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
    CommentId:   "COMMENT_ID",
    Cursor:      0,
    Count:       10,
})

回复视频评论 /item/comment/reply/

rs, err := manager.ItemCommentReply(douyinGo.ItemCommentReplyReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    Body: douyinGo.ItemCommentReplyBody{
        CommentId: "COMMENT_ID",
        ItemId:    "VIDEO_ID",
        Content:   "CONTENT",
    },
})

获取用户视频情况 /data/external/user/item/

rs, err := manager.DataExternalUserItem(douyinGo.DataExternalUserItemReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    DataType:    30,
})

获取用户粉丝数 /data/external/user/fans/

rs, err := manager.DataExternalUserFans(douyinGo.DataExternalUserFansReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    DataType:    30,
})

获取用户点赞数 /data/external/user/like/

rs, err := manager.DataExternalUserLike(douyinGo.DataExternalUserLikeReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    DataType:    30,
})

获取用户评论数 /data/external/user/comment/

rs, err := manager.DataExternalUserComment(douyinGo.DataExternalUserCommentReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    DataType:    30,
})

获取用户分享数 /data/external/user/share/

rs, err := manager.DataExternalUserShare(douyinGo.DataExternalUserShareReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    DataType:    30,
})

获取用户主页访问数 /data/external/user/profile/

rs, err := manager.DataExternalUserProfile(douyinGo.DataExternalUserProfileReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    DataType:    30,
})

获取视频基础数据 /data/external/item/base/

rs, err := manager.DataExternalItemBase(douyinGo.DataExternalItemBaseReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
})

获取视频点赞数据 /data/external/item/like/

rs, err := manager.DataExternalItemLike(douyinGo.DataExternalItemLikeReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
    DateType:    7,
})

获取视频评论数据 /data/external/item/comment/

rs, err := manager.DataExternalItemComment(douyinGo.DataExternalItemCommentReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
    DateType:    7,
})

获取视频播放数据 /data/external/item/play/

rs, err := manager.DataExternalItemPlay(douyinGo.DataExternalItemPlayReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
    DateType:    7,
})

获取视频分享数据 /data/external/item/share/

rs, err := manager.DataExternalItemShare(douyinGo.DataExternalItemShareReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
    ItemId:      "VIDEO_ID",
    DateType:    7,
})

获取实时热点词 /hotsearch/sentences/

rs, err := manager.HotSearchSentences(douyinGo.HotSearchSentencesReq{
    AccessToken: "CLIENT_TOKEN",
})

获取上升词 /hotsearch/trending/sentences/

rs, err := manager.HotSearchTrendingSentences(douyinGo.HotSearchTrendingSentencesReq{
    AccessToken: "CLIENT_TOKEN",
    Count:       10,
})

获取热点词聚合的视频 /hotsearch/videos/

rs, err := manager.HotSearchVideos(douyinGo.HotSearchVideosReq{
    AccessToken: "CLIENT_TOKEN",
    HotSentence: "HOT_SENTENCE",
})

获取抖音星图达人热榜 /star/hot_list/

list, err := manager.StarHotList(douyinGo.StarHotListReq{
    AccessToken: "CLIENT_TOKEN",
    HotListType: 1,
})

获取抖音星图达人指数 /star/author_score/

rs, err := manager.StarAuthorScore(douyinGo.StarAuthorScoreReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
})

获取抖音星图达人指数数据V2 /star/author_score_v2/

rs, err := manager.StarAuthorScoreV2(douyinGo.StarAuthorScoreV2Req{
    AccessToken: "CLIENT_TOKEN",
    UniqueId:    "UNIQUE_ID",
})

获取事件订阅状态 /event/status/list/

rs, err := manager.EventStatusList(douyinGo.EventStatusListReq{
    AccessToken: "CLIENT_TOKEN",
})

更新应用推送事件订阅状态 /event/status/update/

rs, err := manager.EventStatusUpdate(douyinGo.EventStatusUpdateReq{
    AccessToken: "CLIENT_TOKEN",
    Body: douyinGo.EventStatusUpdateBody{
        List: []douyinGo.EventStatus{
            douyinGo.EventStatus{
                Event: "create_video",
                Status: 1,
            },
            douyinGo.EventStatus{
                Event: "authorize",
                Status: 0,
            },
        },
    },
})

消息来源验证

// 如果使用 github.com/gin-gonic/gin 获取 body和signature进行验证
body, _ := c.GetRawData()
signature := c.GetHeader("X-Douyin-Signature")
manager.WebHookSignature(body, signature)

获取jsapi_ticket /js/getticket/

ticket, err := manager.JsTicket(douyinGo.JsTicketReq{
    AccessToken: "CLIENT_TOKEN",
})

根据jsapi_ticket和其他字段进行签名计算

signature := manager.JsConfigSignature(douyinGo.ConfigSignReq{
    JsTicket:  "JSAPI_TICKET",
    Timestamp: "TIMESTAMP",
    NonceStr:  "NONCE_STR",
    Url:       "URL",
})

获取用户粉丝数据 /fans/data/

rs, err := manager.FansData(douyinGo.FansDataReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
})

获取用户粉丝来源分布 /data/extern/fans/source/

rs, err := manager.DataExternalFansSource(douyinGo.DataExternalFansSourceReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
})

获取用户粉丝喜好 /data/extern/fans/favourite/

rs, err := manager.DataExternalFansFavourite(douyinGo.DataExternalFansFavouriteReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
})

获取用户粉丝热评 /data/extern/fans/comment/

rs, err := manager.DataExternalFansComment(douyinGo.DataExternalFansCommentReq{
    AccessToken: "ACCESS_TOKEN",
    OpenId:      "OPEN_ID",
})

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AesDecrypt

func AesDecrypt(crypted, key, iv []byte) ([]byte, error)

func Base64Decode

func Base64Decode(encodeString string) ([]byte, error)

func Base64Encode

func Base64Encode(str []byte) string

func NewCredentials

func NewCredentials(clientKey, clientSecret string) *auth.Credentials

func PKCS5UnPadding

func PKCS5UnPadding(origData []byte) []byte

Types

type AwemeShareData

type AwemeShareData struct {
	ShareId string `json:"share_id"` // 分享id
	DYError
}

type AwemeShareReq

type AwemeShareReq struct {
	AccessToken    string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	NeedCallBack   bool   // 如果需要知道视频分享成功的结果,need_callback设置为true
	SourceStyleId  string // 多来源样式id(暂未开放)
	DefaultHashTag string // 追踪分享默认hashtag
	LinkParam      string // 分享来源url附加参数(暂未开放)
}

type AwemeShareRes

type AwemeShareRes struct {
	Data  AwemeShareData `json:"data"`
	Extra DYExtra        `json:"extra"`
}

type ConfigSignReq

type ConfigSignReq struct {
	JsTicket  string
	Timestamp int64  // 时间戳
	NonceStr  string // 生成签名用的随机字符串
	Url       string // 为应用申请的JSB安全域名,需要携带协议。
}

type DDataExternalItemBaseData

type DDataExternalItemBaseData struct {
	Result DataExternalItemBase `json:"result"` // 视频基础数据
	DYError
}

type DYError

type DYError struct {
	ErrorCode   int64  `json:"error_code,omitempty"`  // 错误码
	Description string `json:"description,omitempty"` // 错误码描述
}

func NewError

func NewError(errorCode int64, description string) *DYError

func (*DYError) Error

func (e *DYError) Error() string

type DYExtra

type DYExtra struct {
	LogId         string `json:"logid"`                     // 标识请求的唯一id
	Now           uint64 `json:"now"`                       // 毫秒级时间戳
	SubDescrition string `json:"sub_description,omitempty"` // 子错误码描述
	SubErrorCode  int64  `json:"sub_error_code,omitempty"`  // 子错误码
	DYError
}

type DataExternalFansCommentData

type DataExternalFansCommentData struct {
	List []DataExternalFansCommentItem `json:"list,omitempty"`
	DYError
}

type DataExternalFansCommentItem

type DataExternalFansCommentItem struct {
	Rank     int32  `json:"rank"`      // 排名
	Keyword  string `json:"keyword"`   // 关键词
	HotValue int64  `json:"hot_value"` // 热度指数
}

type DataExternalFansCommentReq

type DataExternalFansCommentReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
}

type DataExternalFansCommentRes

type DataExternalFansCommentRes struct {
	Data  DataExternalFansCommentData `json:"data"`
	Extra DYExtra                     `json:"extra"`
}

type DataExternalFansFavouriteData

type DataExternalFansFavouriteData struct {
	List []DataExternalFansFavouriteItem `json:"list,omitempty"`
	DYError
}

type DataExternalFansFavouriteItem

type DataExternalFansFavouriteItem struct {
	Rank     int32  `json:"rank"`      // 排名
	Keyword  string `json:"keyword"`   // 关键词
	HotValue int64  `json:"hot_value"` // 热度指数
}

type DataExternalFansFavouriteReq

type DataExternalFansFavouriteReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
}

type DataExternalFansFavouriteRes

type DataExternalFansFavouriteRes struct {
	Data  DataExternalFansFavouriteData `json:"data"`
	Extra DYExtra                       `json:"extra"`
}

type DataExternalFansSourceData

type DataExternalFansSourceData struct {
	List []DataExternalFansSourceItem `json:"list,omitempty"`
	DYError
}

type DataExternalFansSourceItem

type DataExternalFansSourceItem struct {
	Source  string `json:"source"`  // 粉丝来源
	Percent string `json:"percent"` // 来源占比,格式:XX.XX% 精确小数点后2位
}

type DataExternalFansSourceReq

type DataExternalFansSourceReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
}

type DataExternalFansSourceRes

type DataExternalFansSourceRes struct {
	Data  DataExternalFansSourceData `json:"data"`
	Extra DYExtra                    `json:"extra"`
}

type DataExternalItemBase

type DataExternalItemBase struct {
	AvgPlayDuration float64 `json:"avg_play_duration"` // 30天平均播放时长
	TotalComment    int64   `json:"total_comment"`     // 30天评论数
	TotalLike       int64   `json:"total_like"`        // 30天点赞数
	TotalPlay       int64   `json:"total_play"`        // 30天播放次数
	TotalShare      int64   `json:"total_share"`       // 30天分享数
}

type DataExternalItemBaseReq

type DataExternalItemBaseReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	ItemId      string // item_id,仅能查询access_token对应用户上传的视频
}

type DataExternalItemBaseRes

type DataExternalItemBaseRes struct {
	Data  DDataExternalItemBaseData `json:"data"`
	Extra DYExtra                   `json:"extra"`
}

type DataExternalItemComment

type DataExternalItemComment struct {
	Date    string `json:"date"`    // 日期
	Comment int64  `json:"comment"` // 每日评论数
}

type DataExternalItemCommentData

type DataExternalItemCommentData struct {
	ResultList []DataExternalItemComment `json:"result_list"` // 评论数据列表
	DYError
}

type DataExternalItemCommentReq

type DataExternalItemCommentReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	ItemId      string // item_id,仅能查询access_token对应用户上传的视频
	DateType    int64  // 近7/15天;输入7代表7天、15代表15天
}

type DataExternalItemCommentRes

type DataExternalItemCommentRes struct {
	Data  DataExternalItemCommentData `json:"data"`
	Extra DYExtra                     `json:"extra"`
}

type DataExternalItemLike

type DataExternalItemLike struct {
	Date string `json:"date"`
	Like int64  `json:"like"`
}

type DataExternalItemLikeData

type DataExternalItemLikeData struct {
	ResultList []DataExternalItemLike `json:"result_list"` // 点赞数据列表
	DYError
}

type DataExternalItemLikeReq

type DataExternalItemLikeReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	ItemId      string // item_id,仅能查询access_token对应用户上传的视频
	DateType    int64  // 近7/15天;输入7代表7天、15代表15天
}

type DataExternalItemLikeRes

type DataExternalItemLikeRes struct {
	Data  DataExternalItemLikeData `json:"data"`  // 日期
	Extra DYExtra                  `json:"extra"` // 每日点赞数
}

type DataExternalItemPlay

type DataExternalItemPlay struct {
	Date string `json:"date"` // 日期
	Play int64  `json:"play"` // 每日播放数
}

type DataExternalItemPlayData

type DataExternalItemPlayData struct {
	ResultList []DataExternalItemPlay `json:"result_list"` // 播放数据列表
	DYError
}

type DataExternalItemPlayReq

type DataExternalItemPlayReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	ItemId      string // item_id,仅能查询access_token对应用户上传的视频
	DateType    int64  // 近7/15天;输入7代表7天、15代表15天
}

type DataExternalItemPlayRes

type DataExternalItemPlayRes struct {
	Data  DataExternalItemPlayData `json:"data"`
	Extra DYExtra                  `json:"extra"`
}

type DataExternalItemShare

type DataExternalItemShare struct {
	Date  string `json:"date"`  // 日期
	Share int64  `json:"share"` // 每日分享数
}

type DataExternalItemShareData

type DataExternalItemShareData struct {
	ResultList []DataExternalItemShare `json:"result_list"` // 分享数据列表
	DYError
}

type DataExternalItemShareReq

type DataExternalItemShareReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	ItemId      string // item_id,仅能查询access_token对应用户上传的视频
	DateType    int64  // 近7/15天;输入7代表7天、15代表15天
}

type DataExternalItemShareRes

type DataExternalItemShareRes struct {
	Data  DataExternalItemShareData `json:"data"`
	Extra DYExtra                   `json:"extra"`
}

type DataExternalUserComment

type DataExternalUserComment struct {
	Date       string `json:"date"`
	NewComment int64  `json:"new_comment"`
}

type DataExternalUserCommentData

type DataExternalUserCommentData struct {
	ResultList []DataExternalUserComment `json:"result_list"` // 用户评论数据
	DYError
}

type DataExternalUserCommentReq

type DataExternalUserCommentReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	DataType    int64  // 近7/15天;输入7代表7天、15代表15天、30代表30天
}

type DataExternalUserCommentRes

type DataExternalUserCommentRes struct {
	Data  DataExternalUserCommentData `json:"data"`
	Extra DYExtra                     `json:"extra"`
}

type DataExternalUserFans

type DataExternalUserFans struct {
	Date      string `json:"date"`       // 日期
	NewFans   int64  `json:"new_fans"`   // 每天新粉丝数
	TotalFans int64  `json:"total_fans"` // 每日总粉丝数
}

type DataExternalUserFansData

type DataExternalUserFansData struct {
	ResultList []DataExternalUserFans `json:"result_list"` // 用户粉丝数据
	DYError
}

type DataExternalUserFansReq

type DataExternalUserFansReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	DataType    int64  // 近7/15天;输入7代表7天、15代表15天、30代表30天
}

type DataExternalUserFansRes

type DataExternalUserFansRes struct {
	Data  DataExternalUserFansData `json:"data"`
	Extra DYExtra                  `json:"extra"`
}

type DataExternalUserItem

type DataExternalUserItem struct {
	Date       string `json:"date"`        // 日期
	NewIssue   int64  `json:"new_issue"`   // 每日发布内容数
	NewPlay    int64  `json:"new_play"`    // 每天新增视频播放
	TotalIssue int64  `json:"total_issue"` // 每日内容总数
}

type DataExternalUserItemData

type DataExternalUserItemData struct {
	ResultList []DataExternalUserItem `json:"result_list"` // 用户视频数据
	DYError
}

type DataExternalUserItemReq

type DataExternalUserItemReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	DataType    int64  // 近7/15天;输入7代表7天、15代表15天、30代表30天
}

type DataExternalUserItemRes

type DataExternalUserItemRes struct {
	Data  DataExternalUserItemData `json:"data"`
	Extra DYExtra                  `json:"extra"`
}

type DataExternalUserLike

type DataExternalUserLike struct {
	Date    string `json:"date"`     // 日期
	NewLike int64  `json:"new_like"` // 新增点赞
}

type DataExternalUserLikeData

type DataExternalUserLikeData struct {
	ResultList []DataExternalUserLike `json:"result_list"` // 用户点赞数据
	DYError
}

type DataExternalUserLikeReq

type DataExternalUserLikeReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权
	DataType    int64  // 近7/15天;输入7代表7天、15代表15天、30代表30天
}

type DataExternalUserLikeRes

type DataExternalUserLikeRes struct {
	Data  DataExternalUserLikeData `json:"data"`
	Extra DYExtra                  `json:"extra"`
}

type DataExternalUserProfile

type DataExternalUserProfile struct {
	Date      string `json:"date"`       // 日期
	ProfileUV int64  `json:"profile_uv"` // 当日个人主页访问人数
}

type DataExternalUserProfileData

type DataExternalUserProfileData struct {
	ResultList []DataExternalUserProfile `json:"result_list"` // 用户主页访问数据
	DYError
}

type DataExternalUserProfileReq

type DataExternalUserProfileReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	DataType    int64  // 近7/15天;输入7代表7天、15代表15天、30代表30天
}

type DataExternalUserProfileRes

type DataExternalUserProfileRes struct {
	Data  DataExternalUserProfileData `json:"data"`
	Extra DYExtra                     `json:"extra"`
}

type DataExternalUserShare

type DataExternalUserShare struct {
	Date     string `json:"date"`      // 日期
	NewShare int64  `json:"new_share"` // 新增分享
}

type DataExternalUserShareData

type DataExternalUserShareData struct {
	ResultList []DataExternalUserShare `json:"result_list"` // 用户分享数据
	DYError
}

type DataExternalUserShareReq

type DataExternalUserShareReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	DataType    int64  // 近7/15天;输入7代表7天、15代表15天、30代表30天
}

type DataExternalUserShareRes

type DataExternalUserShareRes struct {
	Data  DataExternalUserShareData `json:"data"`
	Extra DYExtra                   `json:"extra"`
}

type EventStatus

type EventStatus struct {
	Event  string `json:"event"`  // 推送事件名称
	Status int64  `json:"status"` // 事件订阅状态 * `0` - 未订阅 * `1` - 已订阅
}

type EventStatusListReq

type EventStatusListReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
}

type EventStatusListRes

type EventStatusListRes struct {
	Data  EventStatusListResData `json:"data"`
	Extra DYExtra                `json:"extra"`
}

type EventStatusListResData

type EventStatusListResData struct {
	List []EventStatus `json:"list"` // 事件列表
	DYError
}

type EventStatusUpdateBody

type EventStatusUpdateBody struct {
	List []EventStatus `json:"list"` // 更新事件列表
}

type EventStatusUpdateReq

type EventStatusUpdateReq struct {
	AccessToken string                // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	Body        EventStatusUpdateBody // 更新事件订阅请求body
}

type EventStatusUpdateRes

type EventStatusUpdateRes struct {
	Data  EventStatusUpdateResData `json:"data"`
	Extra DYExtra                  `json:"extra"`
}

type EventStatusUpdateResData

type EventStatusUpdateResData struct {
	DYError
}

type Fans

type Fans struct {
	Nickname string `json:"nickname"` // 昵称
	Province string `json:"province"` // 省
	Avatar   string `json:"avatar"`   // 头像
	City     string `json:"city"`     // 城市
	Country  string `json:"country"`  // 国家
	Gender   int64  `json:"gender"`   // 性别: * `0` - 未知 * `1` - 男性 * `2` - 女性
	OpenId   string `json:"open_id"`  // 用户在当前应用的唯一标识
	UnionId  string `json:"union_id"` // 用户在当前开发者账号下的唯一标识(未绑定开发者账号没有该字段)
}

type FansDataActiveDaysDistributions

type FansDataActiveDaysDistributions struct {
	Item  string `json:"item"`  // 分布的种类
	Value int64  `json:"value"` // 分布的数值
}

type FansDataAgeDistributions

type FansDataAgeDistributions struct {
	Item  string `json:"item"`  // 分布的种类
	Value int64  `json:"value"` // 分布的数值
}

type FansDataDetails

type FansDataDetails struct {
	ActiveDays   []FansDataActiveDaysDistributions   `json:"active_days_distributions,omitempty"`  // 粉丝活跃天数分布 item: ["0-4","5~8","9~12","13~16","17~20","20+"]
	Age          []FansDataAgeDistributions          `json:"age_distributions,omitempty"`          // 粉丝年龄分布 item: ["1-23", "24-30", "31-40", "41-50", "50-"]
	Device       []FansDataDeviceDistributions       `json:"device_distributions,omitempty"`       // 粉丝设备分布 item: ["苹果","华为","三星","小米"...]
	Flow         []FansDataFlowContributions         `json:"flow_contributions,omitempty"`         // 粉丝流量贡献 flow: ["vv","like_cnt","comment_cnt","share_video_cnt"]
	Gender       []FansDataGenderDistributions       `json:"gender_distributions,omitempty"`       // 粉丝性别分布 item: ["1","2"] (男:1,女:2)
	Geographical []FansDataGeographicalDistributions `json:"geographical_distributions,omitempty"` // 粉丝地域分布 item: ["北京","福建","香港"...]
	Interest     []FansDataInterestDistributions     `json:"interest_distributions,omitempty"`     // 粉丝兴趣分布 item: ["生活"","美食","旅行"...]
	AllFansNum   int64                               `json:"all_fans_num,omitempty"`               // 所有粉丝的数量
}

type FansDataDeviceDistributions

type FansDataDeviceDistributions struct {
	Item  string `json:"item"`  // 分布的种类
	Value int64  `json:"value"` // 分布的数值
}

type FansDataFlowContributions

type FansDataFlowContributions struct {
	AllSum  int64  `json:"all_sum"`  // 总流量贡献
	FansSum int64  `json:"fans_sum"` // 粉丝流量贡献
	Flow    string `json:"flow"`     // 总流量贡献
}

type FansDataGenderDistributions

type FansDataGenderDistributions struct {
	Item  string `json:"item"`  // 分布的种类
	Value int64  `json:"value"` // 分布的数值
}

type FansDataGeographicalDistributions

type FansDataGeographicalDistributions struct {
	Item  string `json:"item"`  // 分布的种类
	Value int64  `json:"value"` // 分布的数值
}

type FansDataInterestDistributions

type FansDataInterestDistributions struct {
	Item  string `json:"item"`  // 分布的种类
	Value int64  `json:"value"` // 分布的数值
}

type FansDataList

type FansDataList struct {
	Details FansDataDetails `json:"fans_data,omitempty"`
	DYError
}

type FansDataReq

type FansDataReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
}

type FansDataRes

type FansDataRes struct {
	Data  FansDataList `json:"data"`
	Extra DYExtra      `json:"extra"`
}

type FansListData

type FansListData struct {
	List    []Fans `json:"list"`     // 粉丝列表
	Total   int64  `json:"total"`    // 粉丝总数
	Cursor  int64  `json:"cursor"`   // 用于下一页请求的cursor
	HasMore bool   `json:"has_more"` // 更多数据
	DYError
}

type FansListReq

type FansListReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Cursor      int64  // 分页游标, 第一页请求cursor是0, response中会返回下一页请求用到的cursor, 同时response还会返回has_more来表明是否有更多的数据。
	Count       int64  // 每页数量
}

type FansListRes

type FansListRes struct {
	Data  FansListData `json:"data"`
	Extra DYExtra      `json:"extra"`
}

type Following

type Following struct {
	Nickname string `json:"nickname"` // 昵称
	Province string `json:"province"` // 省
	Avatar   string `json:"avatar"`   // 头像
	City     string `json:"city"`     // 城市
	Country  string `json:"country"`  // 国家
	Gender   int64  `json:"gender"`   // 性别: * `0` - 未知 * `1` - 男性 * `2` - 女性
	OpenId   string `json:"open_id"`  // 用户在当前应用的唯一标识
	UnionId  string `json:"union_id"` // 用户在当前开发者账号下的唯一标识(未绑定开发者账号没有该字段)
}

type FollowingListData

type FollowingListData struct {
	List    []Following `json:"list"`     // 关注列表
	Cursor  int64       `json:"cursor"`   // 用于下一页请求的cursor
	HasMore bool        `json:"has_more"` // 更多数据
	DYError
}

type FollowingListReq

type FollowingListReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Cursor      int64  // 分页游标, 第一页请求cursor是0, response中会返回下一页请求用到的cursor, 同时response还会返回has_more来表明是否有更多的数据。
	Count       int64  // 每页数量
}

type FollowingListRes

type FollowingListRes struct {
	Data  FollowingListData `json:"data"`
	Extra DYExtra           `json:"extra"`
}

type HotSearchSentence

type HotSearchSentence struct {
	HotLevel int64  `json:"hot_level"` // 热度 综合点赞、评论、转发等计算得出
	Sentence string `json:"sentence"`  // 热点词
}

type HotSearchSentencesData

type HotSearchSentencesData struct {
	ActiveTime string              `json:"active_time"` // 刷新时间
	List       []HotSearchSentence `json:"list"`        // 实时热点词
	DYError
}

type HotSearchSentencesReq

type HotSearchSentencesReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
}

type HotSearchSentencesRes

type HotSearchSentencesRes struct {
	Data  HotSearchSentencesData `json:"data"`
	Extra DYExtra                `json:"extra"`
}

type HotSearchTrendingSentence

type HotSearchTrendingSentence struct {
	HotLevel int64  `json:"hot_level"` // 热度 综合点赞、评论、转发等计算得出
	Sentence string `json:"sentence"`  // 热点词
	Label    int64  `json:"label"`     // 标签: * `0` - 无 * `1` - 新 * `2` - 推荐 * `3` - 热 * `4` - 爆 * `5` - 首发
}

type HotSearchTrendingSentencesData

type HotSearchTrendingSentencesData struct {
	List    []HotSearchTrendingSentence `json:"list"`     // 实时热点词
	Total   int32                       `json:"total"`    // 总数
	Cursor  int64                       `json:"cursor"`   // 用于下一页请求的cursor
	HasMore bool                        `json:"has_more"` // 更多数据
	DYError
}

type HotSearchTrendingSentencesReq

type HotSearchTrendingSentencesReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	Cursor      int64  // 分页游标, 第一页请求cursor是0, response中会返回下一页请求用到的cursor, 同时response还会返回has_more来表明是否有更多的数据。
	Count       int64  // 每页数量
}

type HotSearchTrendingSentencesRes

type HotSearchTrendingSentencesRes struct {
	Data  HotSearchTrendingSentencesData `json:"data"`
	Extra DYExtra                        `json:"extra"`
}

type HotSearchVideosData

type HotSearchVideosData struct {
	List []Video `json:"list"`
	DYError
}

type HotSearchVideosReq

type HotSearchVideosReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	HotSentence string // 热点词
}

type HotSearchVideosRes

type HotSearchVideosRes struct {
	Data  HotSearchVideosData `json:"data"`
	Extra DYExtra             `json:"extra"`
}

type ImageCreateBody

type ImageCreateBody struct {
	PoiId         string   `json:"poi_id,omitempty"`          // 地理位置id
	PoiName       string   `json:"poi_name,omitempty"`        // 地理位置名称
	Text          string   `json:"text,omitempty"`            // 标题,可以带话题。 如title1#话题1 #话题2 注意:话题审核依旧遵循抖音的审核逻辑,强烈建议第三方谨慎拟定话题名称,避免强导流行为。
	MicroAppId    string   `json:"micro_app_id,omitempty"`    // 小程序id
	MicroAppTitle string   `json:"micro_app_title,omitempty"` // 小程序标题
	MicroAppUrl   string   `json:"micro_app_url,omitempty"`   // 吊起小程序时的参数
	ImageId       string   `json:"image_id"`                  // 通过/image/upload/接口得到。
	AtUsers       []string `json:"at_users,omitempty"`        // 如果需要at其他用户。将text中@nickname对应的open_id放到这里。
}

type ImageCreateReq

type ImageCreateReq struct {
	OpenId      string          // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string          // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Body        ImageCreateBody // 请求body
}

type ImageCreateRes

type ImageCreateRes struct {
	Data  ImageCreateResData `json:"data"`
	Extra DYExtra            `json:"extra"`
}

type ImageCreateResData

type ImageCreateResData struct {
	ItemId string `json:"item_id"` // 抖音图片id
	DYError
}

type ImageUploadReq

type ImageUploadReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	FilePath    string // 文件路径
}

type ImageUploadRes

type ImageUploadRes struct {
	Data  ImageUploadResData `json:"data"`
	Extra DYExtra            `json:"extra"`
}

type ImageUploadResData

type ImageUploadResData struct {
	Image ImageUploadResImage `json:"image,omitempty"`
	DYError
}

type ImageUploadResImage

type ImageUploadResImage struct {
	Height  int64  `json:"height"`   // 图片高度
	Width   int64  `json:"width"`    // 图片宽度
	ImageId string `json:"image_id"` // 图片id
}

type ItemComment

type ItemComment struct {
	ReplyCommentTotal int32  `json:"reply_comment_total"` // 回复评论数
	Top               bool   `json:"top"`                 // 是否置顶评论
	CommentId         string `json:"comment_id"`          // 评论id
	CommentUserId     string `json:"comment_user_id"`     // 评论用户id
	Content           string `json:"content"`             // 评论内容
	CreateTime        int64  `json:"create_time"`         // 时间戳
	DiggCount         int32  `json:"digg_count"`          // 点赞数
}

type ItemCommentListData

type ItemCommentListData struct {
	List    []ItemComment `json:"list"`     // 评论列表
	Cursor  int64         `json:"cursor"`   // 用于下一页请求的cursor
	HasMore bool          `json:"has_more"` // 更多数据
	DYError
}

type ItemCommentListReq

type ItemCommentListReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Cursor      int64  // 分页游标, 第一页请求cursor是0, response中会返回下一页请求用到的cursor, 同时response还会返回has_more来表明是否有更多的数据。
	Count       int64  // 每页数量
	ItemId      string // 视频id
}

type ItemCommentListRes

type ItemCommentListRes struct {
	Data  ItemCommentListData `json:"data"`
	Extra DYExtra             `json:"extra"`
}

type ItemCommentReplyBody

type ItemCommentReplyBody struct {
	CommentId string `json:"comment_id,omitempty"` // 需要回复的评论id(如果需要回复的是视频不传此字段)
	Content   string `json:"content"`              // 评论内容
	ItemId    string `json:"item_id"`              // 视频id
}

type ItemCommentReplyData

type ItemCommentReplyData struct {
	CommentId string `json:"comment_id"` // 评论id
	DYError
}

type ItemCommentReplyListData

type ItemCommentReplyListData struct {
	List    []ItemComment `json:"list"`     // 评论回复列表
	Cursor  int64         `json:"cursor"`   // 用于下一页请求的cursor
	HasMore bool          `json:"has_more"` // 更多数据
	DYError
}

type ItemCommentReplyListReq

type ItemCommentReplyListReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Cursor      int64  // 分页游标, 第一页请求cursor是0, response中会返回下一页请求用到的cursor, 同时response还会返回has_more来表明是否有更多的数据。
	Count       int64  // 每页数量
	ItemId      string // 视频id
	CommentId   string // 评论id
}

type ItemCommentReplyListRes

type ItemCommentReplyListRes struct {
	Data  ItemCommentReplyListData `json:"data"`
	Extra DYExtra                  `json:"extra"`
}

type ItemCommentReplyReq

type ItemCommentReplyReq struct {
	OpenId      string               // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string               // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Body        ItemCommentReplyBody // 回复视频评论body
}

type ItemCommentReplyRes

type ItemCommentReplyRes struct {
	Data    ItemCommentReplyData `json:"data"`
	Extra   DYExtra              `json:"extra"`
	Message string               `json:"message"`
}

type JsTicketData

type JsTicketData struct {
	ExpiresIn int64  `json:"expires_in"` // access_token接口调用凭证超时时间,单位(秒)
	Ticket    string `json:"ticket"`     // js接口调用凭证
	DYError
}

type JsTicketReq

type JsTicketReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
}

type JsTicketRes

type JsTicketRes struct {
	Data  JsTicketData `json:"data"`
	Extra DYExtra      `json:"extra"`
}

type Manager

type Manager struct {
	Credentials *auth.Credentials
	// contains filtered or unexported fields
}

func NewManager

func NewManager(credentials *auth.Credentials, tr http.RoundTripper) *Manager

func (*Manager) AwemeShare

func (m *Manager) AwemeShare(req AwemeShareReq) (res AwemeShareRes, err error)

获取share-id

func (*Manager) DataExternalFansComment

func (m *Manager) DataExternalFansComment(req DataExternalFansCommentReq) (res DataExternalFansCommentRes, err error)

获取用户粉丝热评

func (*Manager) DataExternalFansFavourite

func (m *Manager) DataExternalFansFavourite(req DataExternalFansFavouriteReq) (res DataExternalFansFavouriteRes, err error)

获取用户粉丝喜好

func (*Manager) DataExternalFansSource

func (m *Manager) DataExternalFansSource(req DataExternalFansSourceReq) (res DataExternalFansSourceRes, err error)

获取用户粉丝来源分布

func (*Manager) DataExternalItemBase

func (m *Manager) DataExternalItemBase(req DataExternalItemBaseReq) (res DataExternalItemBaseRes, err error)

获取视频基础数据

func (*Manager) DataExternalItemComment

func (m *Manager) DataExternalItemComment(req DataExternalItemCommentReq) (res DataExternalItemCommentRes, err error)

获取视频评论数据

func (*Manager) DataExternalItemLike

func (m *Manager) DataExternalItemLike(req DataExternalItemLikeReq) (res DataExternalItemLikeRes, err error)

获取视频点赞数据

func (*Manager) DataExternalItemPlay

func (m *Manager) DataExternalItemPlay(req DataExternalItemPlayReq) (res DataExternalItemPlayRes, err error)

获取视频播放数据

func (*Manager) DataExternalItemShare

func (m *Manager) DataExternalItemShare(req DataExternalItemShareReq) (res DataExternalItemShareRes, err error)

获取视频分享数据

func (*Manager) DataExternalUserComment

func (m *Manager) DataExternalUserComment(req DataExternalUserCommentReq) (res DataExternalUserCommentRes, err error)

获取用户评论数

func (*Manager) DataExternalUserFans

func (m *Manager) DataExternalUserFans(req DataExternalUserFansReq) (res DataExternalUserFansRes, err error)

获取用户粉丝数

func (*Manager) DataExternalUserItem

func (m *Manager) DataExternalUserItem(req DataExternalUserItemReq) (res DataExternalUserItemRes, err error)

获取用户视频情况

func (*Manager) DataExternalUserLike

func (m *Manager) DataExternalUserLike(req DataExternalUserLikeReq) (res DataExternalUserLikeRes, err error)

获取用户点赞数

func (*Manager) DataExternalUserProfile

func (m *Manager) DataExternalUserProfile(req DataExternalUserProfileReq) (res DataExternalUserProfileRes, err error)

获取用户主页访问数

func (*Manager) DataExternalUserShare

func (m *Manager) DataExternalUserShare(req DataExternalUserShareReq) (res DataExternalUserShareRes, err error)

获取用户分享数

func (*Manager) DecryptMobile

func (m *Manager) DecryptMobile(encryptMobile string) (string, error)

解密用户手机号

func (*Manager) EventStatusList

func (m *Manager) EventStatusList(req EventStatusListReq) (res EventStatusListRes, err error)

获取事件订阅状态

func (*Manager) EventStatusUpdate

func (m *Manager) EventStatusUpdate(req EventStatusUpdateReq) (res EventStatusUpdateRes, err error)

更新应用推送事件订阅状态

func (*Manager) FansData

func (m *Manager) FansData(req FansDataReq) (res FansDataRes, err error)

获取用户粉丝数据(用户首次授权应用后,需要间隔2天才会产生全部的数据;并只提供粉丝大于100的用户数据。)

func (*Manager) FansList

func (m *Manager) FansList(req FansListReq) (res FansListRes, err error)

获取粉丝列表

func (*Manager) FollowingList

func (m *Manager) FollowingList(req FollowingListReq) (res FollowingListRes, err error)

获取关注列表

func (*Manager) HotSearchSentences

func (m *Manager) HotSearchSentences(req HotSearchSentencesReq) (res HotSearchSentencesRes, err error)

获取实时热点词

func (*Manager) HotSearchTrendingSentences

func (m *Manager) HotSearchTrendingSentences(req HotSearchTrendingSentencesReq) (res HotSearchTrendingSentencesRes, err error)

获取上升词

func (*Manager) HotSearchVideos

func (m *Manager) HotSearchVideos(req HotSearchVideosReq) (res HotSearchVideosRes, err error)

获取热点词聚合的视频

func (*Manager) ImageCreate

func (m *Manager) ImageCreate(req ImageCreateReq) (res *ImageCreateRes, err error)

发布图片

func (*Manager) ImageUpload

func (m *Manager) ImageUpload(req ImageUploadReq) (res *ImageUploadRes, err error)

上传图片到文件服务器

func (*Manager) ItemCommentList

func (m *Manager) ItemCommentList(req ItemCommentListReq) (res ItemCommentListRes, err error)

评论列表

func (*Manager) ItemCommentReply

func (m *Manager) ItemCommentReply(req ItemCommentReplyReq) (res ItemCommentReplyRes, err error)

回复视频评论

func (*Manager) ItemCommentReplyList

func (m *Manager) ItemCommentReplyList(req ItemCommentReplyListReq) (res ItemCommentReplyListRes, err error)

评论回复列表

func (*Manager) JsConfigSignature

func (m *Manager) JsConfigSignature(req ConfigSignReq) string

通过config方法验证签名

func (*Manager) JsTicket

func (m *Manager) JsTicket(req JsTicketReq) (res JsTicketRes, err error)

获取jsapi_ticket

func (*Manager) OauthAccessToken

func (m *Manager) OauthAccessToken(req OauthAccessTokenReq) (res OauthAccessTokenRes, err error)

获取access_token

func (*Manager) OauthClientAccessToken

func (m *Manager) OauthClientAccessToken() (res OauthClientAccessTokenRes, err error)

生成client_token

func (*Manager) OauthConnect

func (m *Manager) OauthConnect(param OauthParam) string

生成授权链接,获取授权码

func (*Manager) OauthRefreshToken

func (m *Manager) OauthRefreshToken(req OauthRefreshTokenReq) (res OauthRefreshTokenRes, err error)

刷新access_token

func (*Manager) OauthRenewRefreshToken

func (m *Manager) OauthRenewRefreshToken(req OauthRenewRefreshTokenReq) (res OauthRenewRefreshTokenRes, err error)

刷新refresh_token

func (*Manager) OauthUserinfo

func (m *Manager) OauthUserinfo(req OauthUserinfoReq) (res *OauthUserinfoRes, err error)

获取用户信息

func (*Manager) StarAuthorScore

func (m *Manager) StarAuthorScore(req StarAuthorScoreReq) (res StarAuthorScoreRes, err error)

获取抖音星图达人指数

func (*Manager) StarAuthorScoreV2

func (m *Manager) StarAuthorScoreV2(req StarAuthorScoreV2Req) (res StarAuthorScoreV2Res, err error)

获取抖音星图达人指数数据V2

func (*Manager) StarHotList

func (m *Manager) StarHotList(req StarHotListReq) (res StarHotListRes, err error)

获取抖音星图达人热榜

func (*Manager) VideoCreate

func (m *Manager) VideoCreate(req VideoCreateReq) (res VideoCreateRes, err error)

创建抖音视频

func (*Manager) VideoData

func (m *Manager) VideoData(req VideoDataReq) (res VideoDataRes, err error)

查询指定视频数据

func (*Manager) VideoDelete

func (m *Manager) VideoDelete(req VideoDeleteReq) (res VideoDeleteRes, err error)

删除授权用户发布的视频

func (*Manager) VideoList

func (m *Manager) VideoList(req VideoListReq) (res VideoListRes, err error)

查询授权账号视频数据

func (*Manager) VideoPartUpload

func (m *Manager) VideoPartUpload(req VideoPartUploadReq) (res *VideoPartUploadRes, err error)

上传视频分片到文件服务器

func (*Manager) VideoPartUploadInit

func (m *Manager) VideoPartUploadInit(req VideoPartUploadInitReq) (res VideoPartUploadInitRes, err error)

初始化上传

func (*Manager) VideoUpload

func (m *Manager) VideoUpload(req VideoUploadReq) (res *VideoUploadRes, err error)

上传视频到文件服务器

func (*Manager) VideoUploadPartComplete

func (m *Manager) VideoUploadPartComplete(req VideoUploadPartCompleteReq) (res VideoUploadPartCompleteRes, err error)

完成上传

func (*Manager) WebhookSignature

func (m *Manager) WebhookSignature(body []byte, sign string) bool

type OauthAccessTokenReq

type OauthAccessTokenReq struct {
	Code string // 授权码
}

type OauthAccessTokenRes

type OauthAccessTokenRes struct {
	Data    OauthAccessTokenResData `json:"data"`
	Message string                  `json:"message"`
}

type OauthAccessTokenResData

type OauthAccessTokenResData struct {
	AccessToken  string `json:"access_token"`  // 接口调用凭证
	UnionId      string `json:"union_id"`      // 当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。
	Scope        string `json:"scope"`         // 用户授权的作用域(Scope),使用逗号(,)分隔,开放平台几乎几乎每个接口都需要特定的Scope。
	ExpiresIn    uint64 `json:"expires_in"`    // access_token接口调用凭证超时时间,单位(秒)
	OpenId       string `json:"open_id"`       // 授权用户唯一标识
	RefreshToken string `json:"refresh_token"` // 用户刷新access_token
	DYError
}

type OauthClientAccessTokenRes

type OauthClientAccessTokenRes struct {
	Data    OauthClientAccessTokenResData `json:"data"`
	Message string                        `json:"message"`
}

type OauthClientAccessTokenResData

type OauthClientAccessTokenResData struct {
	AccessToken string `json:"access_token"`
	ExpiresIn   uint64 `json:"expires_in"`
	DYError
}

type OauthParam

type OauthParam struct {
	Scope         string // 应用授权作用域,多个授权作用域以英文逗号(,)分隔
	OptionalScope string // 应用授权可选作用域,多个授权作用域以英文逗号(,)分隔,每一个授权作用域后需要加上一个是否默认勾选的参数,1为默认勾选,0为默认不勾选
	RedirectUri   string // 授权成功后的回调地址,必须以http/https开头。域名必须对应申请应用时填写的域名,如不清楚请联系应用申请人。
	State         string // 用于保持请求和回调的状态
}

type OauthRefreshTokenReq

type OauthRefreshTokenReq struct {
	RefreshToken string // 填写通过access_token获取到的refresh_token参数
}

type OauthRefreshTokenRes

type OauthRefreshTokenRes struct {
	Data    OauthRefreshTokenResData `json:"data"`
	Message string                   `json:"message"`
}

type OauthRefreshTokenResData

type OauthRefreshTokenResData struct {
	AccessToken  string `json:"access_token"`  // 接口调用凭证
	Scope        string `json:"scope"`         // 用户授权的作用域
	ExpiresIn    uint64 `json:"expires_in"`    // 过期时间,单位(秒)
	OpenId       string `json:"open_id"`       // 当前应用下,授权用户唯一标识
	RefreshToken string `json:"refresh_token"` // 用户刷新
	DYError
}

type OauthRenewRefreshTokenReq

type OauthRenewRefreshTokenReq struct {
	RefreshToken string // 填写通过access_token获取到的refresh_token参数
}

type OauthRenewRefreshTokenRes

type OauthRenewRefreshTokenRes struct {
	Data    OauthRenewRefreshTokenResData `json:"data"`
	Message string                        `json:"message"`
}

type OauthRenewRefreshTokenResData

type OauthRenewRefreshTokenResData struct {
	ExpiresIn    uint64 `json:"expires_in"`    // 过期时间,单位(秒)
	RefreshToken string `json:"refresh_token"` // 用户刷新
	DYError
}

type OauthUserinfoReq

type OauthUserinfoReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
}

type OauthUserinfoRes

type OauthUserinfoRes struct {
	Data OauthUserinfoResData `json:"data"`
}

type OauthUserinfoResData

type OauthUserinfoResData struct {
	Nickname      string `json:"nickname"`         // 昵称
	Province      string `json:"province"`         // 省
	Avatar        string `json:"avatar"`           // 头像
	City          string `json:"city"`             // 城市
	Country       string `json:"country"`          // 国家
	EAccountRole  string `json:"e_account_role"`   // 类型: * `EAccountM` - 普通企业号 * `EAccountS` - 认证企业号 * `EAccountK` - 品牌企业号
	Gender        int64  `json:"gender"`           // 性别: * `0` - 未知 * `1` - 男性 * `2` - 女性
	OpenId        string `json:"open_id"`          // 用户在当前应用的唯一标识
	UnionId       string `json:"union_id"`         // 用户在当前开发者账号下的唯一标识(未绑定开发者账号没有该字段)
	EncryptMobile string `json:"encrypt_mobile"`   // 手机号加密字符串
	Mobile        string `json:"mobile,omitempty"` // 手机号
	DYError
}

type StarAuthorScoreData

type StarAuthorScoreData struct {
	ShopScore        float64 `json:"shop_score"`         // 种草指数
	StarScore        float64 `json:"star_score"`         // 星图指数
	UniqueId         string  `json:"unique_id"`          // 达人抖音号
	UpdateTimestamp  int64   `json:"update_timestamp"`   // 达人指数更新时间戳
	CooperationScore float64 `json:"cooperation_score"`  // 合作指数
	CpScore          float64 `json:"cp_score"`           // 性价比指数
	NickName         string  `json:"nick_name"`          // 达人昵称
	GrowthScore      float64 `json:"growth_score"`       // 涨粉指数
	SpreadScore      float64 `json:"spread_score"`       // 传播指数
	Follower         int64   `json:"follower,omitempty"` // 粉丝数
	DYError
}

type StarAuthorScoreReq

type StarAuthorScoreReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
}

type StarAuthorScoreRes

type StarAuthorScoreRes struct {
	Data  StarAuthorScoreData `json:"data"`
	Extra DYExtra             `json:"extra"`
}

type StarAuthorScoreV2Req

type StarAuthorScoreV2Req struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	UniqueId    string // 达人抖音号
}

type StarAuthorScoreV2Res

type StarAuthorScoreV2Res struct {
	Data  StarAuthorScoreData `json:"data"`
	Extra DYExtra             `json:"extra"`
}

type StarHotList

type StarHotList struct {
	Follower int64    `json:"follower"`  // 粉丝数
	NickName string   `json:"nick_name"` // 达人昵称
	Rank     int64    `json:"rank"`      // 热榜排名
	Score    float64  `json:"score"`     // 热榜类型对应的热榜指数
	Tags     []string `json:"tags"`      // 标签
	UniqueId string   `json:"unique_id"` // 抖音号
}

type StarHotListData

type StarHotListData struct {
	HotListType            int64         `json:"hot_list_type"`             // 刷新时间
	HotListUpdateTimestamp int64         `json:"hot_list_update_timestamp"` // 达人热榜更新时间戳
	HotListDescription     string        `json:"hot_list_description"`      // 热榜类型说明 【筛选规则】:综合评估创作者近期作品的有效视频数据、性价比、信用分、有效涨粉、种草指数等加权取值进行排序,以内容数据为主要衡量标准。【达人优势】:综合能力高,具有较大的商业价值。【适用场景】:适用于大部分营销场景,可作为各领域商业投放的必选名单。
	List                   []StarHotList `json:"list"`                      // 实时热点词
	DYError
}

type StarHotListReq

type StarHotListReq struct {
	AccessToken string // 调用/oauth/client_token/生成的token,此token不需要用户授权。
	HotListType int64  // 达人热榜类型 * `1` - 星图指数榜 * `2` - 涨粉指数榜 * `3` - 性价比指数榜 * `4` - 种草指数榜 * `5` - 精选指数榜 * `6` - 传播指数榜
}

type StarHotListRes

type StarHotListRes struct {
	Data  StarHotListData `json:"data"`
	Extra DYExtra         `json:"extra"`
}

type Statistics

type Statistics struct {
	ShareCount    int `json:"share_count"`    // 分享数
	CommentCount  int `json:"comment_count"`  // 评论数
	DiggCount     int `json:"digg_count"`     // 点赞数
	DownloadCount int `json:"download_count"` // 下载数
	ForwardCount  int `json:"forward_count"`  // 转发数
	PlayCount     int `json:"play_count"`     // 播放数,只有作者本人可见。公开视频设为私密后,播放数也会返回0。
}

type Video

type Video struct {
	Cover       string     `json:"cover"`        // 视频封面
	Statistics  Statistics `json:"statistics"`   // 统计数据
	Title       string     `json:"title"`        // 视频标题
	CreateTime  int64      `json:"create_time"`  // 视频创建时间戳
	IsReviewed  bool       `json:"is_reviewed"`  // 表示是否审核结束。审核通过或者失败都会返回true,审核中返回false。
	IsTop       bool       `json:"is_top"`       // 是否置顶
	ItemId      string     `json:"item_id"`      // 视频id
	ShareUrl    string     `json:"share_url"`    // 视频播放页面。视频播放页可能会失效,请在观看视频前调用/video/data/获取最新的播放页。
	VideoStatus int        `json:"video_status"` // 表示视频状态。1:已发布;2:不适宜公开;4:审核中
}

type VideoCreateBody

type VideoCreateBody struct {
	TimelinessLabel   int64    `json:"timeliness_label,omitempty"`   // 时效新闻标签,1表示使用。暂不开放
	ArticlId          string   `json:"article_id,omitempty"`         // 文章ID,暂不开放
	MicroAppId        string   `json:"micro_app_id,omitempty"`       // 小程序id
	PoiId             string   `json:"poi_id,omitempty"`             // 地理位置id
	MicroAppUrl       string   `json:"micro_app_url,omitempty"`      // 吊起小程序时的参数
	ArticleTitle      string   `json:"article_title,omitempty"`      // 文章自定义标题,暂不开放
	CoverTsp          float64  `json:"cover_tsp,omitempty"`          // 将传入的指定时间点对应帧设置为视频封面(单位:秒)
	GameId            string   `json:"game_id,omitempty"`            // 游戏id。暂不开放
	MicroAppTitle     string   `json:"micro_app_title,omitempty"`    // 小程序标题
	PoiName           string   `json:"poi_name,omitempty"`           // 地理位置名称
	TimelinessKeyword string   `json:"timeliness_keyword,omitempty"` // 最多可添加3个,用`\|`隔开。暂不开放
	VideoId           string   `json:"video_id"`                     // video_id, 通过/video/upload/接口得到。注意每次调用/video/create/都要调用/video/upload/生成新的video_id。
	AtUsers           []string `json:"at_users,omitempty"`           // 如果需要at其他用户。将text中@nickname对应的open_id放到这里。
	GameContent       string   `json:"game_content,omitempty"`       // 游戏个性化参数
	Text              string   `json:"text,omitempty"`               // 视频标题, 可以带话题,@用户。 如title1#话题1 #话题2 @openid1 注意: 1. 话题审核依旧遵循抖音的审核逻辑,强烈建议第三方谨慎拟定话题名称,避免强导流行为。
}

type VideoCreateReq

type VideoCreateReq struct {
	OpenId      string          // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string          // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Body        VideoCreateBody // 创建视频body
}

type VideoCreateRes

type VideoCreateRes struct {
	Data  VideoCreateResData `json:"data"`
	Extra DYExtra            `json:"extra"`
}

type VideoCreateResData

type VideoCreateResData struct {
	ItemId string `json:"item_id"` // 视频id
	DYError
}

type VideoDataBody

type VideoDataBody struct {
	ItemIds []string `json:"item_ids"` // item_id数组,仅能查询access_token对应用户上传的视频
}

type VideoDataReq

type VideoDataReq struct {
	OpenId      string        // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string        // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Body        VideoDataBody // 视频数据body
}

type VideoDataRes

type VideoDataRes struct {
	Data  VideoDataResData `json:"data"`
	Extra DYExtra          `json:"extra"`
}

type VideoDataResData

type VideoDataResData struct {
	List []Video `json:"list"` // 视频数据列表
	DYError
}

type VideoDeleteBody

type VideoDeleteBody struct {
	ItemId string `json:"item_id,omitempty"` // 抖音视频id
}

type VideoDeleteReq

type VideoDeleteReq struct {
	OpenId      string          // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string          // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Body        VideoDeleteBody // 删除视频body
}

type VideoDeleteRes

type VideoDeleteRes struct {
	Data  VideoDeleteResData `json:"data"`
	Extra DYExtra            `json:"extra"`
}

type VideoDeleteResData

type VideoDeleteResData struct {
	DYError
}

type VideoListReq

type VideoListReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	Cursor      int64  // 分页游标, 第一页请求cursor是0, response中会返回下一页请求用到的cursor, 同时response还会返回has_more来表明是否有更多的数据。
	Count       int64  // 每页数量
}

type VideoListRes

type VideoListRes struct {
	Data  VideoListResData `json:"data"`
	Extra DYExtra          `json:"extra"`
}

type VideoListResData

type VideoListResData struct {
	List    []Video `json:"list"`     // 视频列表
	Cursor  int64   `json:"cursor"`   // 用于下一页请求的cursor
	HasMore bool    `json:"has_more"` // 更多数据
	DYError
}

type VideoPartUploadData

type VideoPartUploadData struct {
	DYError
}

type VideoPartUploadInitReq

type VideoPartUploadInitReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
}

type VideoPartUploadInitRes

type VideoPartUploadInitRes struct {
	Data  VideoPartUploadInitResData `json:"data"`
	Extra DYExtra                    `json:"extra"`
}

type VideoPartUploadInitResData

type VideoPartUploadInitResData struct {
	UploadId string `json:"upload_id"` // 上传id
	DYError
}

type VideoPartUploadReq

type VideoPartUploadReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	FilePath    string // 文件路径
	UploadId    string // 分片上传的标记。有限时间为2小时。
	ChunkSize   int64  // 视频分片,建议20MB。但不能小于5MB。
	Workers     uint   // 并发上传的块数量
}

type VideoPartUploadRes

type VideoPartUploadRes struct {
	Data  VideoPartUploadData `json:"data"`
	Extra DYExtra             `json:"extra"`
}

type VideoUploadPartCompleteReq

type VideoUploadPartCompleteReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	UploadId    string // 分片上传的标记。有限时间为2小时。
}

type VideoUploadPartCompleteRes

type VideoUploadPartCompleteRes struct {
	Data  VideoUploadResData `json:"data"`
	Extra DYExtra            `json:"extra"`
}

type VideoUploadReq

type VideoUploadReq struct {
	OpenId      string // 通过/oauth/access_token/获取,用户唯一标志
	AccessToken string // 调用/oauth/access_token/生成的token,此token需要用户授权。
	FilePath    string // 文件路径
}

type VideoUploadRes

type VideoUploadRes struct {
	Data  VideoUploadResData `json:"data"`
	Extra DYExtra            `json:"extra"`
}

type VideoUploadResData

type VideoUploadResData struct {
	Video VideoUploadResVideo `json:"video,omitempty"`
	DYError
}

type VideoUploadResVideo

type VideoUploadResVideo struct {
	Height  int64  `json:"height"`   // 视频高度
	Width   int64  `json:"width"`    // 视频宽度
	VideoId string `json:"video_id"` // 视频id
}

type WebhookContent

type WebhookContent struct {
	Challenge   int      `json:"challenge,omitempty"`   // webhook验证码
	ItemId      string   `json:"item_id,omitempty"`     // 视频id
	ShareId     string   `json:"share_id,omitempty"`    // 分享id
	Scopes      []string `json:"scopes,omitempty"`      // 授权scope列表
	Description string   `json:"discription,omitempty"` // 具体见私信事件列表
	Scene       string   `json:"scene,omitempty"`       // 进入对话来源场景["video", "homepage"]
	Object      string   `json:"object,omitempty"`      // 来源场景对应id(video对应视频id)
}

type WebhookEvent

type WebhookEvent struct {
	Event      string         `json:"event"`                  // 事件
	ClientKey  string         `json:"client_key"`             // 使用应用的client_key
	FromUserId string         `json:"from_user_id,omitempty"` // 事件发起用户user_id
	ToUserId   string         `json:"to_user_id,omitempty"`   // 事件接收用户user_id
	Content    WebhookContent `json:"content,omitempty"`      // 不同的event对应不同的content
}

Directories

Path Synopsis
internal
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL