/
dmt_apis.go
558 lines (452 loc) · 17.9 KB
/
dmt_apis.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
// Copyright 2013 The Changkong Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package dmt
import (
"github.com/changkong/open_taobao"
)
/* 同一卖家最多添加500个图片分类,图片分类名称长度最大为20个字符 */
type PictureCategoryAddRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 图片分类的父分类,一级分类的parent_id为0,二级分类的则为其父分类的picture_category_id */
func (r *PictureCategoryAddRequest) SetParentId(value string) {
r.SetValue("parent_id", value)
}
/* 图片分类名称,最大长度20字符,中英文都算一字符,不能为空 */
func (r *PictureCategoryAddRequest) SetPictureCategoryName(value string) {
r.SetValue("picture_category_name", value)
}
func (r *PictureCategoryAddRequest) GetResponse(accessToken string) (*PictureCategoryAddResponse, []byte, error) {
var resp PictureCategoryAddResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.category.add", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureCategoryAddResponse struct {
PictureCategory *PictureCategory `json:"picture_category"`
}
type PictureCategoryAddResponseResult struct {
Response *PictureCategoryAddResponse `json:"picture_category_add_response"`
}
/* 获取图片分类信息 */
type PictureCategoryGetRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 图片分类的修改时间点,格式:yyyy-MM-dd HH:mm:ss。查询此修改时间点之后到目前的图片分类。 */
func (r *PictureCategoryGetRequest) SetModifiedTime(value string) {
r.SetValue("modified_time", value)
}
/* 取二级分类时设置为对应父分类id
取一级分类时父分类id设为0
取全部分类的时候不设或设为-1 */
func (r *PictureCategoryGetRequest) SetParentId(value string) {
r.SetValue("parent_id", value)
}
/* 图片分类ID */
func (r *PictureCategoryGetRequest) SetPictureCategoryId(value string) {
r.SetValue("picture_category_id", value)
}
/* 图片分类名,不支持模糊查询 */
func (r *PictureCategoryGetRequest) SetPictureCategoryName(value string) {
r.SetValue("picture_category_name", value)
}
/* 分类类型,fixed代表店铺装修分类类别,auction代表宝贝分类类别,user-define代表用户自定义分类类别 */
func (r *PictureCategoryGetRequest) SetType(value string) {
r.SetValue("type", value)
}
func (r *PictureCategoryGetRequest) GetResponse(accessToken string) (*PictureCategoryGetResponse, []byte, error) {
var resp PictureCategoryGetResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.category.get", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureCategoryGetResponse struct {
PictureCategories []*PictureCategory `json:"picture_categories"`
}
type PictureCategoryGetResponseResult struct {
Response *PictureCategoryGetResponse `json:"picture_category_get_response"`
}
/* 更新图片分类的名字,或者更新图片分类的父分类(即分类移动)。只能移动2级分类到非2级分类,默认分类和1级分类不可移动。 */
type PictureCategoryUpdateRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 要更新的图片分类的id */
func (r *PictureCategoryUpdateRequest) SetCategoryId(value string) {
r.SetValue("category_id", value)
}
/* 图片分类的新名字,最大长度20字符,不能为空 */
func (r *PictureCategoryUpdateRequest) SetCategoryName(value string) {
r.SetValue("category_name", value)
}
/* 图片分类的新父分类id */
func (r *PictureCategoryUpdateRequest) SetParentId(value string) {
r.SetValue("parent_id", value)
}
func (r *PictureCategoryUpdateRequest) GetResponse(accessToken string) (*PictureCategoryUpdateResponse, []byte, error) {
var resp PictureCategoryUpdateResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.category.update", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureCategoryUpdateResponse struct {
Done bool `json:"done"`
}
type PictureCategoryUpdateResponseResult struct {
Response *PictureCategoryUpdateResponse `json:"picture_category_update_response"`
}
/* 删除图片空间图片 */
type PictureDeleteRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 图片ID字符串,可以一个也可以一组,用英文逗号间隔,如450,120,155 */
func (r *PictureDeleteRequest) SetPictureIds(value string) {
r.SetValue("picture_ids", value)
}
func (r *PictureDeleteRequest) GetResponse(accessToken string) (*PictureDeleteResponse, []byte, error) {
var resp PictureDeleteResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.delete", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureDeleteResponse struct {
Success bool `json:"success"`
}
type PictureDeleteResponseResult struct {
Response *PictureDeleteResponse `json:"picture_delete_response"`
}
/* 获取图片信息 */
type PictureGetRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 是否删除,unfroze代表没有删除 */
func (r *PictureGetRequest) SetDeleted(value string) {
r.SetValue("deleted", value)
}
/* 查询上传结束时间点,格式:yyyy-MM-dd HH:mm:ss */
func (r *PictureGetRequest) SetEndDate(value string) {
r.SetValue("end_date", value)
}
/* 图片被修改的时间点,格式:yyyy-MM-dd HH:mm:ss。查询此修改时间点之后到目前的图片。 */
func (r *PictureGetRequest) SetModifiedTime(value string) {
r.SetValue("modified_time", value)
}
/* 图片查询结果排序,time:desc按上传时间从晚到早(默认), time:asc按上传时间从早到晚,sizes:desc按图片从大到小,sizes:asc按图片从小到大,默认time:desc */
func (r *PictureGetRequest) SetOrderBy(value string) {
r.SetValue("order_by", value)
}
/* 页码.传入值为1代表第一页,传入值为2代表第二页,依此类推,默认值为1 */
func (r *PictureGetRequest) SetPageNo(value string) {
r.SetValue("page_no", value)
}
/* 每页条数.每页返回最多返回100条,默认值40 */
func (r *PictureGetRequest) SetPageSize(value string) {
r.SetValue("page_size", value)
}
/* 图片分类ID */
func (r *PictureGetRequest) SetPictureCategoryId(value string) {
r.SetValue("picture_category_id", value)
}
/* 图片ID */
func (r *PictureGetRequest) SetPictureId(value string) {
r.SetValue("picture_id", value)
}
/* 查询上传开始时间点,格式:yyyy-MM-dd HH:mm:ss */
func (r *PictureGetRequest) SetStartDate(value string) {
r.SetValue("start_date", value)
}
/* 图片标题,最大长度50字符,中英文都算一字符 */
func (r *PictureGetRequest) SetTitle(value string) {
r.SetValue("title", value)
}
func (r *PictureGetRequest) GetResponse(accessToken string) (*PictureGetResponse, []byte, error) {
var resp PictureGetResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.get", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureGetResponse struct {
Pictures []*Picture `json:"pictures"`
TotalResults int `json:"totalResults"`
}
type PictureGetResponseResult struct {
Response *PictureGetResponse `json:"picture_get_response"`
}
/* 查询图片是否被引用,被引用返回true,未被引用返回false */
type PictureIsreferencedGetRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 图片id */
func (r *PictureIsreferencedGetRequest) SetPictureId(value string) {
r.SetValue("picture_id", value)
}
func (r *PictureIsreferencedGetRequest) GetResponse(accessToken string) (*PictureIsreferencedGetResponse, []byte, error) {
var resp PictureIsreferencedGetResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.isreferenced.get", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureIsreferencedGetResponse struct {
IsReferenced bool `json:"is_referenced"`
}
type PictureIsreferencedGetResponseResult struct {
Response *PictureIsreferencedGetResponse `json:"picture_isreferenced_get_response"`
}
/* 替换一张图片,只替换图片数据,图片名称,图片分类等保持不变。 */
type PictureReplaceRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 图片二进制文件流,不能为空,允许png、jpg、gif图片格式 */
func (r *PictureReplaceRequest) SetImageData(value string) {
r.SetValue("image_data", value)
}
/* 要替换的图片的id,必须大于0 */
func (r *PictureReplaceRequest) SetPictureId(value string) {
r.SetValue("picture_id", value)
}
func (r *PictureReplaceRequest) GetResponse(accessToken string) (*PictureReplaceResponse, []byte, error) {
var resp PictureReplaceResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.replace", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureReplaceResponse struct {
Done bool `json:"done"`
}
type PictureReplaceResponseResult struct {
Response *PictureReplaceResponse `json:"picture_replace_response"`
}
/* 修改指定图片的图片名 */
type PictureUpdateRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 新的图片名,最大长度50字符,不能为空 */
func (r *PictureUpdateRequest) SetNewName(value string) {
r.SetValue("new_name", value)
}
/* 要更改名字的图片的id */
func (r *PictureUpdateRequest) SetPictureId(value string) {
r.SetValue("picture_id", value)
}
func (r *PictureUpdateRequest) GetResponse(accessToken string) (*PictureUpdateResponse, []byte, error) {
var resp PictureUpdateResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.update", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureUpdateResponse struct {
Done bool `json:"done"`
}
type PictureUpdateResponseResult struct {
Response *PictureUpdateResponse `json:"picture_update_response"`
}
/* 上传单张图片 */
type PictureUploadRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 包括后缀名的图片标题,不能为空,如Bule.jpg,有些卖家希望图片上传后取图片文件的默认名 */
func (r *PictureUploadRequest) SetImageInputTitle(value string) {
r.SetValue("image_input_title", value)
}
/* 图片二进制文件流,不能为空,允许png、jpg、gif图片格式,2M以内。 */
func (r *PictureUploadRequest) SetImg(value string) {
r.SetValue("img", value)
}
/* 图片分类ID,设置具体某个分类ID或设置0上传到默认分类,只能传入一个分类 */
func (r *PictureUploadRequest) SetPictureCategoryId(value string) {
r.SetValue("picture_category_id", value)
}
/* 图片标题,如果为空,传的图片标题就取去掉后缀名的image_input_title,超过50字符长度会截取50字符,重名会在标题末尾加"(1)";标题末尾已经有"(数字)"了,则数字加1 */
func (r *PictureUploadRequest) SetTitle(value string) {
r.SetValue("title", value)
}
func (r *PictureUploadRequest) GetResponse(accessToken string) (*PictureUploadResponse, []byte, error) {
var resp PictureUploadResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.upload", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureUploadResponse struct {
Picture *Picture `json:"picture"`
}
type PictureUploadResponseResult struct {
Response *PictureUploadResponse `json:"picture_upload_response"`
}
/* 查询用户的图片空间使用信息,包括:订购量,已使用容量,免费容量,总的可使用容量,订购有效期,剩余容量 */
type PictureUserinfoGetRequest struct {
open_taobao.TaobaoMethodRequest
}
func (r *PictureUserinfoGetRequest) GetResponse(accessToken string) (*PictureUserinfoGetResponse, []byte, error) {
var resp PictureUserinfoGetResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.picture.userinfo.get", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type PictureUserinfoGetResponse struct {
UserInfo *UserInfo `json:"user_info"`
}
type PictureUserinfoGetResponseResult struct {
Response *PictureUserinfoGetResponse `json:"picture_userinfo_get_response"`
}
/* 此api添加一个视频,视频发布后需要转码,审核等操作步骤,表示添加完成之后并不是立马能播放该视频,需要等后台转码成功,审核通过之后。线上视频转码审核过程比较快 */
type VideoAddRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 视频封面url,不能为空且不能超过512个英文字母 */
func (r *VideoAddRequest) SetCoverUrl(value string) {
r.SetValue("cover_url", value)
}
/* 视频描述信息,不能为空且不能超过256个汉字 */
func (r *VideoAddRequest) SetDescription(value string) {
r.SetValue("description", value)
}
/* 视频标签,以','隔开,不能为空且总长度不超过128个汉字 */
func (r *VideoAddRequest) SetTags(value string) {
r.SetValue("tags", value)
}
/* 视频标题,不能为空且不超过128个汉字 */
func (r *VideoAddRequest) SetTitle(value string) {
r.SetValue("title", value)
}
/* 上传唯一识别符,上传id */
func (r *VideoAddRequest) SetUploadId(value string) {
r.SetValue("upload_id", value)
}
/* 视频上传者数字id */
func (r *VideoAddRequest) SetUploaderId(value string) {
r.SetValue("uploader_id", value)
}
/* 在淘宝视频中的应用key,该值向淘宝视频申请产生 */
func (r *VideoAddRequest) SetVideoAppKey(value string) {
r.SetValue("video_app_key", value)
}
func (r *VideoAddRequest) GetResponse(accessToken string) (*VideoAddResponse, []byte, error) {
var resp VideoAddResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.video.add", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type VideoAddResponse struct {
Model int `json:"model"`
}
type VideoAddResponseResult struct {
Response *VideoAddResponse `json:"video_add_response"`
}
/* 此api用于更新一个视频的基本信息,包括视频标题,标签,描述,封面等,不包括是否允许他人观看,更新是否允许他人观看详见taobao.videos.open */
type VideoUpdateRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 视频封面url,不能超过512个英文字母 */
func (r *VideoUpdateRequest) SetCoverUrl(value string) {
r.SetValue("cover_url", value)
}
/* 视频描述信息,不能超过256个汉字 */
func (r *VideoUpdateRequest) SetDescription(value string) {
r.SetValue("description", value)
}
/* 视频标签,以','隔开,且总长度不超过128个汉字 */
func (r *VideoUpdateRequest) SetTags(value string) {
r.SetValue("tags", value)
}
/* 视频标题,不超过128个汉字。title, tags,cover_url和description至少必须传一个 */
func (r *VideoUpdateRequest) SetTitle(value string) {
r.SetValue("title", value)
}
/* 在淘宝视频中的应用key,该值向淘宝视频申请产生 */
func (r *VideoUpdateRequest) SetVideoAppKey(value string) {
r.SetValue("video_app_key", value)
}
/* 视频id */
func (r *VideoUpdateRequest) SetVideoId(value string) {
r.SetValue("video_id", value)
}
func (r *VideoUpdateRequest) GetResponse(accessToken string) (*VideoUpdateResponse, []byte, error) {
var resp VideoUpdateResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.video.update", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type VideoUpdateResponse struct {
Model bool `json:"model"`
}
type VideoUpdateResponseResult struct {
Response *VideoUpdateResponse `json:"video_update_response"`
}
/* 此api用于搜索应用上传的所有视频,应用由appKey 唯一识别,搜索条件包含视频标题,标签,状态,关键字(标题or标签,不能同时设置),上传者数字id */
type VideosSearchRequest struct {
open_taobao.TaobaoMethodRequest
}
/* 页码。默认返回的数据是从第一页开始 */
func (r *VideosSearchRequest) SetCurrentPage(value string) {
r.SetValue("current_page", value)
}
/* 需要返回的视频对象字段。VideoItem结构体中所有字段均可返回;多个字段用“,”分隔;其中video_play_info中的播放url可选择性返回,其余属性全部返回;如果想返回整个子对象中所有url,那字段为video_play_info,如果是想返回子对象里面的字段,那字段为video_play_info.web_url。 */
func (r *VideosSearchRequest) SetFields(value string) {
r.SetValue("fields", value)
}
/* 关键字(标题or标签,不能同时设置title,tag,否则冲突) */
func (r *VideosSearchRequest) SetKeywords(value string) {
r.SetValue("keywords", value)
}
/* 每页条数,默认值是12 */
func (r *VideosSearchRequest) SetPageSize(value string) {
r.SetValue("page_size", value)
}
/* 视频状态列表;视频状态:等待转码(1),转码中(2),转码失败(3),等待审核(4),未通过审核(5),通过审核(6) */
func (r *VideosSearchRequest) SetStates(value string) {
r.SetValue("states", value)
}
/* 视频标签 */
func (r *VideosSearchRequest) SetTag(value string) {
r.SetValue("tag", value)
}
/* 视频标题 */
func (r *VideosSearchRequest) SetTitle(value string) {
r.SetValue("title", value)
}
/* 视频上传者数字id */
func (r *VideosSearchRequest) SetUploaderId(value string) {
r.SetValue("uploader_id", value)
}
/* 在淘宝视频中的应用key,该值向淘宝视频申请产生 */
func (r *VideosSearchRequest) SetVideoAppKey(value string) {
r.SetValue("video_app_key", value)
}
func (r *VideosSearchRequest) GetResponse(accessToken string) (*VideosSearchResponse, []byte, error) {
var resp VideosSearchResponseResult
data, err := r.TaobaoMethodRequest.GetResponse(accessToken, "taobao.videos.search", &resp)
if err != nil {
return nil, data, err
}
return resp.Response, data, err
}
type VideosSearchResponse struct {
SearchResult *TOPSearchResult `json:"search_result"`
}
type VideosSearchResponseResult struct {
Response *VideosSearchResponse `json:"videos_search_response"`
}