-
-
Notifications
You must be signed in to change notification settings - Fork 69
/
api_app_feed_card_update.go
149 lines (129 loc) · 10.1 KB
/
api_app_feed_card_update.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
// Code generated by lark_sdk_gen. DO NOT EDIT.
/**
* Copyright 2022 chyroc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package lark
import (
"context"
)
// UpdateAppFeedCard 该接口用于更新消息流卡片的头像、标题、预览、标签状态、按钮等信息
//
// 字段更新策略: 具体更新的字段以 `update_fields` 为准, 根据 `update_fields` 代表的字段从 `app_feed_card` 中取出来进行更新, 不在 `update_fields` 中的字段不会更新。
//
// doc: https://open.larkoffice.com/document/uAjLw4CM/ukTMukTMukTM/group/im-v2/app_feed_card-batch/update
func (r *MessageService) UpdateAppFeedCard(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error) {
if r.cli.mock.mockMessageUpdateAppFeedCard != nil {
r.cli.Log(ctx, LogLevelDebug, "[lark] Message#UpdateAppFeedCard mock enable")
return r.cli.mock.mockMessageUpdateAppFeedCard(ctx, request, options...)
}
req := &RawRequestReq{
Scope: "Message",
API: "UpdateAppFeedCard",
Method: "PUT",
URL: r.cli.openBaseURL + "/open-apis/im/v2/app_feed_card/batch",
Body: request,
MethodOption: newMethodOption(options),
NeedTenantAccessToken: true,
}
resp := new(updateAppFeedCardResp)
response, err := r.cli.RawRequest(ctx, req, resp)
return resp.Data, response, err
}
// MockMessageUpdateAppFeedCard mock MessageUpdateAppFeedCard method
func (r *Mock) MockMessageUpdateAppFeedCard(f func(ctx context.Context, request *UpdateAppFeedCardReq, options ...MethodOptionFunc) (*UpdateAppFeedCardResp, *Response, error)) {
r.mockMessageUpdateAppFeedCard = f
}
// UnMockMessageUpdateAppFeedCard un-mock MessageUpdateAppFeedCard method
func (r *Mock) UnMockMessageUpdateAppFeedCard() {
r.mockMessageUpdateAppFeedCard = nil
}
// UpdateAppFeedCardReq ...
type UpdateAppFeedCardReq struct {
UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID
FeedCards []*UpdateAppFeedCardReqFeedCard `json:"feed_cards,omitempty"` // 应用消息卡片, 长度范围: `1` ~ `20`
}
// UpdateAppFeedCardReqFeedCard ...
type UpdateAppFeedCardReqFeedCard struct {
AppFeedCard *UpdateAppFeedCardReqFeedCardAppFeedCard `json:"app_feed_card,omitempty"` // 应用消息卡片
UserID string `json:"user_id,omitempty"` // 用户 id, 示例值: "ou_a0553eda9014c201e6969b478895c230"
UpdateFields []string `json:"update_fields,omitempty"` // 更新字段列表, 示例值: ["1"], 可选值有: 1: 标题, 2: 头像 key, 3: 预览, 10: 状态标签, 11: 按钮, 12: 跳转链接, 13: 即时提醒状态, 101: 展示时间更新到当前, 102: 排序时间更新到当前, 103: 进行通知, 长度范围: `1` ~ `20`
}
// UpdateAppFeedCardReqFeedCardAppFeedCard ...
type UpdateAppFeedCardReqFeedCardAppFeedCard struct {
BizID *string `json:"biz_id,omitempty"` // 业务 ID, 示例值: "096e2927-40a6-41a3-9562-314d641d09ae", 长度范围: `0` ~ `200` 字符
Title *string `json:"title,omitempty"` // 主标题, 示例值: "主标题", 长度范围: `0` ~ `60` 字符
AvatarKey *string `json:"avatar_key,omitempty"` // 头像 key, 示例值: "v3_0041_007bca9f-67ba-4199-bf00-4031b12cf226", 长度范围: `0` ~ `100` 字符
Preview *string `json:"preview,omitempty"` // 预览信息, 示例值: "预览信息", 长度范围: `0` ~ `120` 字符
StatusLabel *UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel `json:"status_label,omitempty"` // 状态标签
Buttons *UpdateAppFeedCardReqFeedCardAppFeedCardButtons `json:"buttons,omitempty"` // 交互按钮
Link *UpdateAppFeedCardReqFeedCardAppFeedCardLink `json:"link,omitempty"` // 跳转链接
TimeSensitive *bool `json:"time_sensitive,omitempty"` // 即时提醒状态, true-打开, false-关闭, 示例值: false, 默认值: `false`
Notify *UpdateAppFeedCardReqFeedCardAppFeedCardNotify `json:"notify,omitempty"` // 通知设置, 当前可设置通知是否关闭, 为空时默认进行通知
}
// UpdateAppFeedCardReqFeedCardAppFeedCardButtons ...
type UpdateAppFeedCardReqFeedCardAppFeedCardButtons struct {
Buttons []*UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton `json:"buttons,omitempty"` // 按钮组合, 长度范围: `0` ~ `2`
}
// UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton ...
type UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButton struct {
MultiURL *UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL `json:"multi_url,omitempty"` // 跳转 URL
ActionType string `json:"action_type,omitempty"` // 交互类型, 示例值: "url_page", 可选值有: url_page: URL 页面, webhook: 回调
Text *UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonText `json:"text,omitempty"` // 文字
ButtonType *string `json:"button_type,omitempty"` // 按钮类型, 示例值: "default", 可选值有: default: 默认, primary: 主要, success: 成功, 默认值: `default`
ActionMap map[string]string `json:"action_map,omitempty"` // action 字典, 示例值: {"foo": "bar"}
}
// UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL ...
type UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonMultiURL struct {
URL *string `json:"url,omitempty"` // 默认 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符
AndroidURL *string `json:"android_url,omitempty"` // Android 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符
IosURL *string `json:"ios_url,omitempty"` // iOS 平台 URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符
PcURL *string `json:"pc_url,omitempty"` // PC URL, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符
}
// UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonText ...
type UpdateAppFeedCardReqFeedCardAppFeedCardButtonsButtonText struct {
Text string `json:"text,omitempty"` // 文本, 示例值: "文本", 长度范围: `1` ~ `30` 字符
}
// UpdateAppFeedCardReqFeedCardAppFeedCardLink ...
type UpdateAppFeedCardReqFeedCardAppFeedCardLink struct {
Link *string `json:"link,omitempty"` // 链接, 示例值: "https://www.feishu.cn/", 最大长度: `700` 字符
}
// UpdateAppFeedCardReqFeedCardAppFeedCardNotify ...
type UpdateAppFeedCardReqFeedCardAppFeedCardNotify struct {
CloseNotify *bool `json:"close_notify,omitempty"` // 是否关闭通知, 示例值: true, 默认值: `false`
CustomSoundText *string `json:"custom_sound_text,omitempty"` // 自定义语音播报文本内容, 示例值: "您有新的订单", 最大长度: `20` 字符
WithCustomSound *bool `json:"with_custom_sound,omitempty"` // 是否播报自定义语音, 示例值: true, 默认值: `false`
}
// UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel ...
type UpdateAppFeedCardReqFeedCardAppFeedCardStatusLabel struct {
Text string `json:"text,omitempty"` // 标签文字, 示例值: "标签文字", 长度范围: `1` ~ `20` 字符
Type string `json:"type,omitempty"` // 标签类型, 示例值: "primary", 可选值有: primary: 主类型, secondary: 次要类型, success: 成功类型, danger: 危险类型, 默认值: `primary`
}
// UpdateAppFeedCardResp ...
type UpdateAppFeedCardResp struct {
FailedCards []*UpdateAppFeedCardRespFailedCard `json:"failed_cards,omitempty"` // 失败的卡片
}
// UpdateAppFeedCardRespFailedCard ...
type UpdateAppFeedCardRespFailedCard struct {
BizID string `json:"biz_id,omitempty"` // 业务 ID
UserID string `json:"user_id,omitempty"` // 用户 ID
Reason string `json:"reason,omitempty"` // 原因, 可选值有: 0: 未知, 1: 无权限, 2: 未创建, 3: 频率限制, 4: 重复
}
// updateAppFeedCardResp ...
type updateAppFeedCardResp struct {
Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败
Msg string `json:"msg,omitempty"` // 错误描述
Data *UpdateAppFeedCardResp `json:"data,omitempty"`
Error *ErrorDetail `json:"error,omitempty"`
}