gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/im/v1/model.go (about) 1 // Package im code generated by oapi sdk gen 2 /* 3 * MIT License 4 * 5 * Copyright (c) 2022 Lark Technologies Pte. Ltd. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 * 9 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 */ 13 14 package larkim 15 16 import ( 17 "io" 18 19 "bytes" 20 21 "io/ioutil" 22 23 "fmt" 24 25 "context" 26 "errors" 27 28 "gitee.com/larksuite/oapi-sdk-go/v3/event" 29 30 "gitee.com/larksuite/oapi-sdk-go/v3/core" 31 ) 32 33 const ( 34 UserIdTypeUserId = "user_id" // 以user_id来识别用户 35 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 36 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 37 ) 38 39 const ( 40 UserIdTypeGetChatUserId = "user_id" // 以user_id来识别用户 41 UserIdTypeGetChatUnionId = "union_id" // 以union_id来识别用户 42 UserIdTypeGetChatOpenId = "open_id" // 以open_id来识别用户 43 ) 44 45 const ( 46 UserIdTypeListChatUserId = "user_id" // 以user_id来识别用户 47 UserIdTypeListChatUnionId = "union_id" // 以union_id来识别用户 48 UserIdTypeListChatOpenId = "open_id" // 以open_id来识别用户 49 ) 50 51 const ( 52 UserIdTypeSearchChatUserId = "user_id" // 以user_id来识别用户 53 UserIdTypeSearchChatUnionId = "union_id" // 以union_id来识别用户 54 UserIdTypeSearchChatOpenId = "open_id" // 以open_id来识别用户 55 ) 56 57 const ( 58 UserIdTypeUpdateChatUserId = "user_id" // 以user_id来识别用户 59 UserIdTypeUpdateChatUnionId = "union_id" // 以union_id来识别用户 60 UserIdTypeUpdateChatOpenId = "open_id" // 以open_id来识别用户 61 ) 62 63 const ( 64 UserIdTypeGetChatAnnouncementUserId = "user_id" // 以user_id来识别用户 65 UserIdTypeGetChatAnnouncementUnionId = "union_id" // 以union_id来识别用户 66 UserIdTypeGetChatAnnouncementOpenId = "open_id" // 以open_id来识别用户 67 ) 68 69 const ( 70 MemberIdTypeUserId = "user_id" // 以user_id来识别成员 71 MemberIdTypeUnionId = "union_id" // 以union_id来识别成员 72 MemberIdTypeOpenId = "open_id" // 以open_id来识别成员 73 MemberIdTypeAppId = "app_id" // 以app_id来识别成员 74 ) 75 76 const ( 77 MemberIdTypeDeleteManagersChatManagersUserId = "user_id" // 以user_id来识别成员 78 MemberIdTypeDeleteManagersChatManagersUnionId = "union_id" // 以union_id来识别成员 79 MemberIdTypeDeleteManagersChatManagersOpenId = "open_id" // 以open_id来识别成员 80 MemberIdTypeDeleteManagersChatManagersAppId = "app_id" // 以app_id来识别成员 81 ) 82 83 const ( 84 MemberIdTypeCreateChatMembersUserId = "user_id" // 以user_id来识别成员 85 MemberIdTypeCreateChatMembersUnionId = "union_id" // 以union_id来识别成员 86 MemberIdTypeCreateChatMembersOpenId = "open_id" // 以open_id来识别成员 87 MemberIdTypeCreateChatMembersAppId = "app_id" // 以app_id来识别成员 88 ) 89 90 const ( 91 SucceedType0 = 0 // 保持以前的策略,存在不可用的 ID 会拉群失败,返回错误响应 92 SucceedType1 = 1 // 将可用 ID 全部拉入群,返回拉群成功的响应,并展示不可用的 93 SucceedType2 = 2 // 存在不可用的 ID 会拉群失败,返回错误响应,并展示出不可用的 ID 94 95 ) 96 97 const ( 98 MemberIdTypeDeleteChatMembersUserId = "user_id" // 以user_id来识别成员 99 MemberIdTypeDeleteChatMembersUnionId = "union_id" // 以union_id来识别成员 100 MemberIdTypeDeleteChatMembersOpenId = "open_id" // 以open_id来识别成员 101 MemberIdTypeDeleteChatMembersAppId = "app_id" // 以app_id来识别成员 102 ) 103 104 const ( 105 MemberIdTypeGetChatMembersUserId = "user_id" // 以user_id来识别成员 106 MemberIdTypeGetChatMembersUnionId = "union_id" // 以union_id来识别成员 107 MemberIdTypeGetChatMembersOpenId = "open_id" // 以open_id来识别成员 108 ) 109 110 const ( 111 UserIdTypeGetChatModerationUserId = "user_id" // 以user_id来识别用户 112 UserIdTypeGetChatModerationUnionId = "union_id" // 以union_id来识别用户 113 UserIdTypeGetChatModerationOpenId = "open_id" // 以open_id来识别用户 114 ) 115 116 const ( 117 UserIdTypeUpdateChatModerationUserId = "user_id" // 以user_id来识别用户 118 UserIdTypeUpdateChatModerationUnionId = "union_id" // 以union_id来识别用户 119 UserIdTypeUpdateChatModerationOpenId = "open_id" // 以open_id来识别用户 120 ) 121 122 const ( 123 FileTypeOpus = "opus" // 上传opus音频文件 124 FileTypeMp4 = "mp4" // 上传mp4视频文件 125 FileTypePdf = "pdf" // 上传pdf格式文件 126 FileTypeDoc = "doc" // 上传doc格式文件 127 FileTypeXls = "xls" // 上传xls格式文件 128 FileTypePpt = "ppt" // 上传ppt格式文件 129 FileTypeStream = "stream" // 上传stream格式文件 130 ) 131 132 const ( 133 ImageTypeMessage = "message" // 用于发送消息 134 ImageTypeAvatar = "avatar" // 用于设置头像 135 ) 136 137 const ( 138 ReceiveIdTypeOpenId = "open_id" // 以open_id来识别用户 139 ReceiveIdTypeUserId = "user_id" // 以user_id来识别用户 140 ReceiveIdTypeUnionId = "union_id" // 以union_id来识别用户 141 ReceiveIdTypeEmail = "email" // 以email来识别用户 142 ReceiveIdTypeChatId = "chat_id" // 以chat_id来识别群聊 143 ) 144 145 const ( 146 UserIdTypeReadUsersMessageUserId = "user_id" // 以user_id来识别用户 147 UserIdTypeReadUsersMessageUnionId = "union_id" // 以union_id来识别用户 148 UserIdTypeReadUsersMessageOpenId = "open_id" // 以open_id来识别用户 149 ) 150 151 const ( 152 UserIdTypeUrgentAppMessageUserId = "user_id" // 以user_id来识别用户 153 UserIdTypeUrgentAppMessageUnionId = "union_id" // 以union_id来识别用户 154 UserIdTypeUrgentAppMessageOpenId = "open_id" // 以open_id来识别用户 155 ) 156 157 const ( 158 UserIdTypeUrgentPhoneMessageUserId = "user_id" // 以user_id来识别用户 159 UserIdTypeUrgentPhoneMessageUnionId = "union_id" // 以union_id来识别用户 160 UserIdTypeUrgentPhoneMessageOpenId = "open_id" // 以open_id来识别用户 161 ) 162 163 const ( 164 UserIdTypeUrgentSmsMessageUserId = "user_id" // 以user_id来识别用户 165 UserIdTypeUrgentSmsMessageUnionId = "union_id" // 以union_id来识别用户 166 UserIdTypeUrgentSmsMessageOpenId = "open_id" // 以open_id来识别用户 167 ) 168 169 const ( 170 UserIdTypeListMessageReactionOpenId = "open_id" // 171 UserIdTypeListMessageReactionUnionId = "union_id" // 172 UserIdTypeListMessageReactionUserId = "user_id" // 173 ) 174 175 type BatchMessage struct { 176 BatchMessageId *string `json:"batch_message_id,omitempty"` // 批量发消息的批次号,代表某次批量发送消息的唯一标识 177 BatchSendProgress *BatchSendProgress `json:"batch_send_progress,omitempty"` // 发送进度 178 BatchRecallProgress *BatchRecallProgress `json:"batch_recall_progress,omitempty"` // 撤回进度 179 } 180 181 type BatchMessageBuilder struct { 182 batchMessageId string // 批量发消息的批次号,代表某次批量发送消息的唯一标识 183 batchMessageIdFlag bool 184 batchSendProgress *BatchSendProgress // 发送进度 185 batchSendProgressFlag bool 186 batchRecallProgress *BatchRecallProgress // 撤回进度 187 batchRecallProgressFlag bool 188 } 189 190 func NewBatchMessageBuilder() *BatchMessageBuilder { 191 builder := &BatchMessageBuilder{} 192 return builder 193 } 194 195 // 批量发消息的批次号,代表某次批量发送消息的唯一标识 196 // 197 // 示例值:bm_dc13264520392913993dd051dba21dcf 198 func (builder *BatchMessageBuilder) BatchMessageId(batchMessageId string) *BatchMessageBuilder { 199 builder.batchMessageId = batchMessageId 200 builder.batchMessageIdFlag = true 201 return builder 202 } 203 204 // 发送进度 205 // 206 // 示例值:json结构 207 func (builder *BatchMessageBuilder) BatchSendProgress(batchSendProgress *BatchSendProgress) *BatchMessageBuilder { 208 builder.batchSendProgress = batchSendProgress 209 builder.batchSendProgressFlag = true 210 return builder 211 } 212 213 // 撤回进度 214 // 215 // 示例值:json结构 216 func (builder *BatchMessageBuilder) BatchRecallProgress(batchRecallProgress *BatchRecallProgress) *BatchMessageBuilder { 217 builder.batchRecallProgress = batchRecallProgress 218 builder.batchRecallProgressFlag = true 219 return builder 220 } 221 222 func (builder *BatchMessageBuilder) Build() *BatchMessage { 223 req := &BatchMessage{} 224 if builder.batchMessageIdFlag { 225 req.BatchMessageId = &builder.batchMessageId 226 227 } 228 if builder.batchSendProgressFlag { 229 req.BatchSendProgress = builder.batchSendProgress 230 } 231 if builder.batchRecallProgressFlag { 232 req.BatchRecallProgress = builder.batchRecallProgress 233 } 234 return req 235 } 236 237 type BatchMessageReadUser struct { 238 ReadCount *string `json:"read_count,omitempty"` // 已读的人数 239 TotalCount *string `json:"total_count,omitempty"` // 推送的总人数 240 } 241 242 type BatchMessageReadUserBuilder struct { 243 readCount string // 已读的人数 244 readCountFlag bool 245 totalCount string // 推送的总人数 246 totalCountFlag bool 247 } 248 249 func NewBatchMessageReadUserBuilder() *BatchMessageReadUserBuilder { 250 builder := &BatchMessageReadUserBuilder{} 251 return builder 252 } 253 254 // 已读的人数 255 // 256 // 示例值: 257 func (builder *BatchMessageReadUserBuilder) ReadCount(readCount string) *BatchMessageReadUserBuilder { 258 builder.readCount = readCount 259 builder.readCountFlag = true 260 return builder 261 } 262 263 // 推送的总人数 264 // 265 // 示例值: 266 func (builder *BatchMessageReadUserBuilder) TotalCount(totalCount string) *BatchMessageReadUserBuilder { 267 builder.totalCount = totalCount 268 builder.totalCountFlag = true 269 return builder 270 } 271 272 func (builder *BatchMessageReadUserBuilder) Build() *BatchMessageReadUser { 273 req := &BatchMessageReadUser{} 274 if builder.readCountFlag { 275 req.ReadCount = &builder.readCount 276 277 } 278 if builder.totalCountFlag { 279 req.TotalCount = &builder.totalCount 280 281 } 282 return req 283 } 284 285 type BatchMessageRecallProgress struct { 286 Recall *bool `json:"recall,omitempty"` // 该条批量消息是否被执行过撤回操作 287 RecallCount *int `json:"recall_count,omitempty"` // 已经成功撤回的消息数量 288 } 289 290 type BatchMessageRecallProgressBuilder struct { 291 recall bool // 该条批量消息是否被执行过撤回操作 292 recallFlag bool 293 recallCount int // 已经成功撤回的消息数量 294 recallCountFlag bool 295 } 296 297 func NewBatchMessageRecallProgressBuilder() *BatchMessageRecallProgressBuilder { 298 builder := &BatchMessageRecallProgressBuilder{} 299 return builder 300 } 301 302 // 该条批量消息是否被执行过撤回操作 303 // 304 // 示例值:true 305 func (builder *BatchMessageRecallProgressBuilder) Recall(recall bool) *BatchMessageRecallProgressBuilder { 306 builder.recall = recall 307 builder.recallFlag = true 308 return builder 309 } 310 311 // 已经成功撤回的消息数量 312 // 313 // 示例值:100 314 func (builder *BatchMessageRecallProgressBuilder) RecallCount(recallCount int) *BatchMessageRecallProgressBuilder { 315 builder.recallCount = recallCount 316 builder.recallCountFlag = true 317 return builder 318 } 319 320 func (builder *BatchMessageRecallProgressBuilder) Build() *BatchMessageRecallProgress { 321 req := &BatchMessageRecallProgress{} 322 if builder.recallFlag { 323 req.Recall = &builder.recall 324 325 } 326 if builder.recallCountFlag { 327 req.RecallCount = &builder.recallCount 328 329 } 330 return req 331 } 332 333 type BatchMessageSendProgress struct { 334 ValidUserIdsCount *int `json:"valid_user_ids_count,omitempty"` // 批量请求中有效的userid数量(包含机器人不可见用户);;* 注: ;当valid_user_ids_count为0有两种情况:;1. 批量任务还没有开始被调度(请等待一会再调用该接口);2. 批量发送消息时传入的所有openIDs、employeID、departmentiIDs都不包含有效的用户 335 SuccessUserIdsCount *int `json:"success_user_ids_count,omitempty"` // 已经成功给用户发送成功的消息数量;;* 注:最终success_user_ids_count不一定等于valid_user_ids_count, 因为valid_user_ids_count包含了对机器人不可见的用户 336 ReadUserIdsCount *int `json:"read_user_ids_count,omitempty"` // 已读信息用户数量 337 } 338 339 type BatchMessageSendProgressBuilder struct { 340 validUserIdsCount int // 批量请求中有效的userid数量(包含机器人不可见用户);;* 注: ;当valid_user_ids_count为0有两种情况:;1. 批量任务还没有开始被调度(请等待一会再调用该接口);2. 批量发送消息时传入的所有openIDs、employeID、departmentiIDs都不包含有效的用户 341 validUserIdsCountFlag bool 342 successUserIdsCount int // 已经成功给用户发送成功的消息数量;;* 注:最终success_user_ids_count不一定等于valid_user_ids_count, 因为valid_user_ids_count包含了对机器人不可见的用户 343 successUserIdsCountFlag bool 344 readUserIdsCount int // 已读信息用户数量 345 readUserIdsCountFlag bool 346 } 347 348 func NewBatchMessageSendProgressBuilder() *BatchMessageSendProgressBuilder { 349 builder := &BatchMessageSendProgressBuilder{} 350 return builder 351 } 352 353 // 批量请求中有效的userid数量(包含机器人不可见用户);;* 注: ;当valid_user_ids_count为0有两种情况:;1. 批量任务还没有开始被调度(请等待一会再调用该接口);2. 批量发送消息时传入的所有openIDs、employeID、departmentiIDs都不包含有效的用户 354 // 355 // 示例值:204 356 func (builder *BatchMessageSendProgressBuilder) ValidUserIdsCount(validUserIdsCount int) *BatchMessageSendProgressBuilder { 357 builder.validUserIdsCount = validUserIdsCount 358 builder.validUserIdsCountFlag = true 359 return builder 360 } 361 362 // 已经成功给用户发送成功的消息数量;;* 注:最终success_user_ids_count不一定等于valid_user_ids_count, 因为valid_user_ids_count包含了对机器人不可见的用户 363 // 364 // 示例值:200 365 func (builder *BatchMessageSendProgressBuilder) SuccessUserIdsCount(successUserIdsCount int) *BatchMessageSendProgressBuilder { 366 builder.successUserIdsCount = successUserIdsCount 367 builder.successUserIdsCountFlag = true 368 return builder 369 } 370 371 // 已读信息用户数量 372 // 373 // 示例值:150 374 func (builder *BatchMessageSendProgressBuilder) ReadUserIdsCount(readUserIdsCount int) *BatchMessageSendProgressBuilder { 375 builder.readUserIdsCount = readUserIdsCount 376 builder.readUserIdsCountFlag = true 377 return builder 378 } 379 380 func (builder *BatchMessageSendProgressBuilder) Build() *BatchMessageSendProgress { 381 req := &BatchMessageSendProgress{} 382 if builder.validUserIdsCountFlag { 383 req.ValidUserIdsCount = &builder.validUserIdsCount 384 385 } 386 if builder.successUserIdsCountFlag { 387 req.SuccessUserIdsCount = &builder.successUserIdsCount 388 389 } 390 if builder.readUserIdsCountFlag { 391 req.ReadUserIdsCount = &builder.readUserIdsCount 392 393 } 394 return req 395 } 396 397 type BatchRecallProgress struct { 398 RecallCount *string `json:"recall_count,omitempty"` // 撤回成功的消息条数 399 TotalRecallCount *string `json:"total_recall_count,omitempty"` // 计划撤回的消息条数 400 } 401 402 type BatchRecallProgressBuilder struct { 403 recallCount string // 撤回成功的消息条数 404 recallCountFlag bool 405 totalRecallCount string // 计划撤回的消息条数 406 totalRecallCountFlag bool 407 } 408 409 func NewBatchRecallProgressBuilder() *BatchRecallProgressBuilder { 410 builder := &BatchRecallProgressBuilder{} 411 return builder 412 } 413 414 // 撤回成功的消息条数 415 // 416 // 示例值: 417 func (builder *BatchRecallProgressBuilder) RecallCount(recallCount string) *BatchRecallProgressBuilder { 418 builder.recallCount = recallCount 419 builder.recallCountFlag = true 420 return builder 421 } 422 423 // 计划撤回的消息条数 424 // 425 // 示例值: 426 func (builder *BatchRecallProgressBuilder) TotalRecallCount(totalRecallCount string) *BatchRecallProgressBuilder { 427 builder.totalRecallCount = totalRecallCount 428 builder.totalRecallCountFlag = true 429 return builder 430 } 431 432 func (builder *BatchRecallProgressBuilder) Build() *BatchRecallProgress { 433 req := &BatchRecallProgress{} 434 if builder.recallCountFlag { 435 req.RecallCount = &builder.recallCount 436 437 } 438 if builder.totalRecallCountFlag { 439 req.TotalRecallCount = &builder.totalRecallCount 440 441 } 442 return req 443 } 444 445 type BatchSendProgress struct { 446 SendCount *string `json:"send_count,omitempty"` // 发送成功的消息条数 447 TotalSendCount *string `json:"total_send_count,omitempty"` // 总的计划发送的消息条数 448 } 449 450 type BatchSendProgressBuilder struct { 451 sendCount string // 发送成功的消息条数 452 sendCountFlag bool 453 totalSendCount string // 总的计划发送的消息条数 454 totalSendCountFlag bool 455 } 456 457 func NewBatchSendProgressBuilder() *BatchSendProgressBuilder { 458 builder := &BatchSendProgressBuilder{} 459 return builder 460 } 461 462 // 发送成功的消息条数 463 // 464 // 示例值: 465 func (builder *BatchSendProgressBuilder) SendCount(sendCount string) *BatchSendProgressBuilder { 466 builder.sendCount = sendCount 467 builder.sendCountFlag = true 468 return builder 469 } 470 471 // 总的计划发送的消息条数 472 // 473 // 示例值: 474 func (builder *BatchSendProgressBuilder) TotalSendCount(totalSendCount string) *BatchSendProgressBuilder { 475 builder.totalSendCount = totalSendCount 476 builder.totalSendCountFlag = true 477 return builder 478 } 479 480 func (builder *BatchSendProgressBuilder) Build() *BatchSendProgress { 481 req := &BatchSendProgress{} 482 if builder.sendCountFlag { 483 req.SendCount = &builder.sendCount 484 485 } 486 if builder.totalSendCountFlag { 487 req.TotalSendCount = &builder.totalSendCount 488 489 } 490 return req 491 } 492 493 type Chat struct { 494 ChatId *string `json:"chat_id,omitempty"` // chat_id of the conversation 495 Avatar *string `json:"avatar,omitempty"` // avatar of the conversation 496 Name *string `json:"name,omitempty"` // name of the conversation 497 Description *string `json:"description,omitempty"` // description of the conversation 498 I18nNames *I18nNames `json:"i18n_names,omitempty"` // i18_names of the conversation 499 OnlyOwnerAdd *bool `json:"only_owner_add,omitempty"` // whether only the owner of the converation can add others 500 ShareAllowed *bool `json:"share_allowed,omitempty"` // whether the converation can be shared 501 OnlyOwnerAtAll *bool `json:"only_owner_at_all,omitempty"` // whether only the owner of the converation can @all 502 OnlyOwnerEdit *bool `json:"only_owner_edit,omitempty"` // whether only the owner of the converation can edit the converation info 503 OwnerUserId *string `json:"owner_user_id,omitempty"` // owner_id 504 Type *string `json:"type,omitempty"` // type 505 506 } 507 508 type ChatBuilder struct { 509 chatId string // chat_id of the conversation 510 chatIdFlag bool 511 avatar string // avatar of the conversation 512 avatarFlag bool 513 name string // name of the conversation 514 nameFlag bool 515 description string // description of the conversation 516 descriptionFlag bool 517 i18nNames *I18nNames // i18_names of the conversation 518 i18nNamesFlag bool 519 onlyOwnerAdd bool // whether only the owner of the converation can add others 520 onlyOwnerAddFlag bool 521 shareAllowed bool // whether the converation can be shared 522 shareAllowedFlag bool 523 onlyOwnerAtAll bool // whether only the owner of the converation can @all 524 onlyOwnerAtAllFlag bool 525 onlyOwnerEdit bool // whether only the owner of the converation can edit the converation info 526 onlyOwnerEditFlag bool 527 ownerUserId string // owner_id 528 ownerUserIdFlag bool 529 type_ string // type 530 typeFlag bool 531 } 532 533 func NewChatBuilder() *ChatBuilder { 534 builder := &ChatBuilder{} 535 return builder 536 } 537 538 // chat_id of the conversation 539 // 540 // 示例值: 541 func (builder *ChatBuilder) ChatId(chatId string) *ChatBuilder { 542 builder.chatId = chatId 543 builder.chatIdFlag = true 544 return builder 545 } 546 547 // avatar of the conversation 548 // 549 // 示例值: 550 func (builder *ChatBuilder) Avatar(avatar string) *ChatBuilder { 551 builder.avatar = avatar 552 builder.avatarFlag = true 553 return builder 554 } 555 556 // name of the conversation 557 // 558 // 示例值: 559 func (builder *ChatBuilder) Name(name string) *ChatBuilder { 560 builder.name = name 561 builder.nameFlag = true 562 return builder 563 } 564 565 // description of the conversation 566 // 567 // 示例值: 568 func (builder *ChatBuilder) Description(description string) *ChatBuilder { 569 builder.description = description 570 builder.descriptionFlag = true 571 return builder 572 } 573 574 // i18_names of the conversation 575 // 576 // 示例值: 577 func (builder *ChatBuilder) I18nNames(i18nNames *I18nNames) *ChatBuilder { 578 builder.i18nNames = i18nNames 579 builder.i18nNamesFlag = true 580 return builder 581 } 582 583 // whether only the owner of the converation can add others 584 // 585 // 示例值: 586 func (builder *ChatBuilder) OnlyOwnerAdd(onlyOwnerAdd bool) *ChatBuilder { 587 builder.onlyOwnerAdd = onlyOwnerAdd 588 builder.onlyOwnerAddFlag = true 589 return builder 590 } 591 592 // whether the converation can be shared 593 // 594 // 示例值: 595 func (builder *ChatBuilder) ShareAllowed(shareAllowed bool) *ChatBuilder { 596 builder.shareAllowed = shareAllowed 597 builder.shareAllowedFlag = true 598 return builder 599 } 600 601 // whether only the owner of the converation can @all 602 // 603 // 示例值: 604 func (builder *ChatBuilder) OnlyOwnerAtAll(onlyOwnerAtAll bool) *ChatBuilder { 605 builder.onlyOwnerAtAll = onlyOwnerAtAll 606 builder.onlyOwnerAtAllFlag = true 607 return builder 608 } 609 610 // whether only the owner of the converation can edit the converation info 611 // 612 // 示例值: 613 func (builder *ChatBuilder) OnlyOwnerEdit(onlyOwnerEdit bool) *ChatBuilder { 614 builder.onlyOwnerEdit = onlyOwnerEdit 615 builder.onlyOwnerEditFlag = true 616 return builder 617 } 618 619 // owner_id 620 // 621 // 示例值: 622 func (builder *ChatBuilder) OwnerUserId(ownerUserId string) *ChatBuilder { 623 builder.ownerUserId = ownerUserId 624 builder.ownerUserIdFlag = true 625 return builder 626 } 627 628 // type 629 // 630 // 示例值: 631 func (builder *ChatBuilder) Type(type_ string) *ChatBuilder { 632 builder.type_ = type_ 633 builder.typeFlag = true 634 return builder 635 } 636 637 func (builder *ChatBuilder) Build() *Chat { 638 req := &Chat{} 639 if builder.chatIdFlag { 640 req.ChatId = &builder.chatId 641 642 } 643 if builder.avatarFlag { 644 req.Avatar = &builder.avatar 645 646 } 647 if builder.nameFlag { 648 req.Name = &builder.name 649 650 } 651 if builder.descriptionFlag { 652 req.Description = &builder.description 653 654 } 655 if builder.i18nNamesFlag { 656 req.I18nNames = builder.i18nNames 657 } 658 if builder.onlyOwnerAddFlag { 659 req.OnlyOwnerAdd = &builder.onlyOwnerAdd 660 661 } 662 if builder.shareAllowedFlag { 663 req.ShareAllowed = &builder.shareAllowed 664 665 } 666 if builder.onlyOwnerAtAllFlag { 667 req.OnlyOwnerAtAll = &builder.onlyOwnerAtAll 668 669 } 670 if builder.onlyOwnerEditFlag { 671 req.OnlyOwnerEdit = &builder.onlyOwnerEdit 672 673 } 674 if builder.ownerUserIdFlag { 675 req.OwnerUserId = &builder.ownerUserId 676 677 } 678 if builder.typeFlag { 679 req.Type = &builder.type_ 680 681 } 682 683 return req 684 } 685 686 type ChatAnnouncement struct { 687 } 688 689 type ChatManagers struct { 690 ManagerId *string `json:"manager_id,omitempty"` // 群管理员ID 691 } 692 693 type ChatManagersBuilder struct { 694 managerId string // 群管理员ID 695 managerIdFlag bool 696 } 697 698 func NewChatManagersBuilder() *ChatManagersBuilder { 699 builder := &ChatManagersBuilder{} 700 return builder 701 } 702 703 // 群管理员ID 704 // 705 // 示例值: 706 func (builder *ChatManagersBuilder) ManagerId(managerId string) *ChatManagersBuilder { 707 builder.managerId = managerId 708 builder.managerIdFlag = true 709 return builder 710 } 711 712 func (builder *ChatManagersBuilder) Build() *ChatManagers { 713 req := &ChatManagers{} 714 if builder.managerIdFlag { 715 req.ManagerId = &builder.managerId 716 717 } 718 return req 719 } 720 721 type ChatMember struct { 722 UserId *string `json:"user_id,omitempty"` // user_id 723 } 724 725 type ChatMemberBuilder struct { 726 userId string // user_id 727 userIdFlag bool 728 } 729 730 func NewChatMemberBuilder() *ChatMemberBuilder { 731 builder := &ChatMemberBuilder{} 732 return builder 733 } 734 735 // user_id 736 // 737 // 示例值: 738 func (builder *ChatMemberBuilder) UserId(userId string) *ChatMemberBuilder { 739 builder.userId = userId 740 builder.userIdFlag = true 741 return builder 742 } 743 744 func (builder *ChatMemberBuilder) Build() *ChatMember { 745 req := &ChatMember{} 746 if builder.userIdFlag { 747 req.UserId = &builder.userId 748 749 } 750 return req 751 } 752 753 type ChatMemberBot struct { 754 BotId *string `json:"bot_id,omitempty"` // bot_id 755 } 756 757 type ChatMemberBotBuilder struct { 758 botId string // bot_id 759 botIdFlag bool 760 } 761 762 func NewChatMemberBotBuilder() *ChatMemberBotBuilder { 763 builder := &ChatMemberBotBuilder{} 764 return builder 765 } 766 767 // bot_id 768 // 769 // 示例值: 770 func (builder *ChatMemberBotBuilder) BotId(botId string) *ChatMemberBotBuilder { 771 builder.botId = botId 772 builder.botIdFlag = true 773 return builder 774 } 775 776 func (builder *ChatMemberBotBuilder) Build() *ChatMemberBot { 777 req := &ChatMemberBot{} 778 if builder.botIdFlag { 779 req.BotId = &builder.botId 780 781 } 782 return req 783 } 784 785 type ChatMemberUser struct { 786 Name *string `json:"name,omitempty"` // 用户名字 787 TenantKey *string `json:"tenant_key,omitempty"` // 租户 Key 788 UserId *UserId `json:"user_id,omitempty"` // 用户 ID 789 } 790 791 type ChatMemberUserBuilder struct { 792 name string // 用户名字 793 nameFlag bool 794 tenantKey string // 租户 Key 795 tenantKeyFlag bool 796 userId *UserId // 用户 ID 797 userIdFlag bool 798 } 799 800 func NewChatMemberUserBuilder() *ChatMemberUserBuilder { 801 builder := &ChatMemberUserBuilder{} 802 return builder 803 } 804 805 // 用户名字 806 // 807 // 示例值:user name 808 func (builder *ChatMemberUserBuilder) Name(name string) *ChatMemberUserBuilder { 809 builder.name = name 810 builder.nameFlag = true 811 return builder 812 } 813 814 // 租户 Key 815 // 816 // 示例值:3774yuu3743 817 func (builder *ChatMemberUserBuilder) TenantKey(tenantKey string) *ChatMemberUserBuilder { 818 builder.tenantKey = tenantKey 819 builder.tenantKeyFlag = true 820 return builder 821 } 822 823 // 用户 ID 824 // 825 // 示例值: 826 func (builder *ChatMemberUserBuilder) UserId(userId *UserId) *ChatMemberUserBuilder { 827 builder.userId = userId 828 builder.userIdFlag = true 829 return builder 830 } 831 832 func (builder *ChatMemberUserBuilder) Build() *ChatMemberUser { 833 req := &ChatMemberUser{} 834 if builder.nameFlag { 835 req.Name = &builder.name 836 837 } 838 if builder.tenantKeyFlag { 839 req.TenantKey = &builder.tenantKey 840 841 } 842 if builder.userIdFlag { 843 req.UserId = builder.userId 844 } 845 return req 846 } 847 848 type ChatMembers struct { 849 UserId *string `json:"user_id,omitempty"` // user_id 850 } 851 852 type ChatMembersBuilder struct { 853 userId string // user_id 854 userIdFlag bool 855 } 856 857 func NewChatMembersBuilder() *ChatMembersBuilder { 858 builder := &ChatMembersBuilder{} 859 return builder 860 } 861 862 // user_id 863 // 864 // 示例值: 865 func (builder *ChatMembersBuilder) UserId(userId string) *ChatMembersBuilder { 866 builder.userId = userId 867 builder.userIdFlag = true 868 return builder 869 } 870 871 func (builder *ChatMembersBuilder) Build() *ChatMembers { 872 req := &ChatMembers{} 873 if builder.userIdFlag { 874 req.UserId = &builder.userId 875 876 } 877 return req 878 } 879 880 type ChatTab struct { 881 TabId *string `json:"tab_id,omitempty"` // TabID 882 TabName *string `json:"tab_name,omitempty"` // Tab名称 883 TabType *string `json:"tab_type,omitempty"` // Tab类型 884 TabContent *ChatTabContent `json:"tab_content,omitempty"` // Tab内容 885 } 886 887 type ChatTabBuilder struct { 888 tabId string // TabID 889 tabIdFlag bool 890 tabName string // Tab名称 891 tabNameFlag bool 892 tabType string // Tab类型 893 tabTypeFlag bool 894 tabContent *ChatTabContent // Tab内容 895 tabContentFlag bool 896 } 897 898 func NewChatTabBuilder() *ChatTabBuilder { 899 builder := &ChatTabBuilder{} 900 return builder 901 } 902 903 // TabID 904 // 905 // 示例值:7101214603622940671 906 func (builder *ChatTabBuilder) TabId(tabId string) *ChatTabBuilder { 907 builder.tabId = tabId 908 builder.tabIdFlag = true 909 return builder 910 } 911 912 // Tab名称 913 // 914 // 示例值:文档 915 func (builder *ChatTabBuilder) TabName(tabName string) *ChatTabBuilder { 916 builder.tabName = tabName 917 builder.tabNameFlag = true 918 return builder 919 } 920 921 // Tab类型 922 // 923 // 示例值:doc 924 func (builder *ChatTabBuilder) TabType(tabType string) *ChatTabBuilder { 925 builder.tabType = tabType 926 builder.tabTypeFlag = true 927 return builder 928 } 929 930 // Tab内容 931 // 932 // 示例值: 933 func (builder *ChatTabBuilder) TabContent(tabContent *ChatTabContent) *ChatTabBuilder { 934 builder.tabContent = tabContent 935 builder.tabContentFlag = true 936 return builder 937 } 938 939 func (builder *ChatTabBuilder) Build() *ChatTab { 940 req := &ChatTab{} 941 if builder.tabIdFlag { 942 req.TabId = &builder.tabId 943 944 } 945 if builder.tabNameFlag { 946 req.TabName = &builder.tabName 947 948 } 949 if builder.tabTypeFlag { 950 req.TabType = &builder.tabType 951 952 } 953 if builder.tabContentFlag { 954 req.TabContent = builder.tabContent 955 } 956 return req 957 } 958 959 type ChatTopNotice struct { 960 ActionType *string `json:"action_type,omitempty"` // 置顶的类型 961 MessageId *string `json:"message_id,omitempty"` // 消息id 962 } 963 964 type ChatTopNoticeBuilder struct { 965 actionType string // 置顶的类型 966 actionTypeFlag bool 967 messageId string // 消息id 968 messageIdFlag bool 969 } 970 971 func NewChatTopNoticeBuilder() *ChatTopNoticeBuilder { 972 builder := &ChatTopNoticeBuilder{} 973 return builder 974 } 975 976 // 置顶的类型 977 // 978 // 示例值:1 979 func (builder *ChatTopNoticeBuilder) ActionType(actionType string) *ChatTopNoticeBuilder { 980 builder.actionType = actionType 981 builder.actionTypeFlag = true 982 return builder 983 } 984 985 // 消息id 986 // 987 // 示例值:om_dc13264520392913993dd051dba21dcf 988 func (builder *ChatTopNoticeBuilder) MessageId(messageId string) *ChatTopNoticeBuilder { 989 builder.messageId = messageId 990 builder.messageIdFlag = true 991 return builder 992 } 993 994 func (builder *ChatTopNoticeBuilder) Build() *ChatTopNotice { 995 req := &ChatTopNotice{} 996 if builder.actionTypeFlag { 997 req.ActionType = &builder.actionType 998 999 } 1000 if builder.messageIdFlag { 1001 req.MessageId = &builder.messageId 1002 1003 } 1004 return req 1005 } 1006 1007 type ChatChange struct { 1008 Avatar *string `json:"avatar,omitempty"` // 群头像 1009 Name *string `json:"name,omitempty"` // 群名称 1010 Description *string `json:"description,omitempty"` // 群描述 1011 I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 1012 AddMemberPermission *string `json:"add_member_permission,omitempty"` // 加人入群权限(all_members/only_owner/unknown) 1013 ShareCardPermission *string `json:"share_card_permission,omitempty"` // 群分享权限(allowed/not_allowed/unknown) 1014 AtAllPermission *string `json:"at_all_permission,omitempty"` // at 所有人权限(all_members/only_owner/unknown) 1015 EditPermission *string `json:"edit_permission,omitempty"` // 群编辑权限(all_members/only_owner/unknown) 1016 MembershipApproval *string `json:"membership_approval,omitempty"` // 加群审批(no_approval_required/approval_required) 1017 JoinMessageVisibility *string `json:"join_message_visibility,omitempty"` // 入群消息可见性(only_owner/all_members/not_anyone) 1018 LeaveMessageVisibility *string `json:"leave_message_visibility,omitempty"` // 出群消息可见性(only_owner/all_members/not_anyone) 1019 ModerationPermission *string `json:"moderation_permission,omitempty"` // 发言权限(all_members/only_owner) 1020 OwnerId *UserId `json:"owner_id,omitempty"` // 用户 ID 1021 1022 } 1023 1024 type ChatChangeBuilder struct { 1025 avatar string // 群头像 1026 avatarFlag bool 1027 name string // 群名称 1028 nameFlag bool 1029 description string // 群描述 1030 descriptionFlag bool 1031 i18nNames *I18nNames // 群国际化名称 1032 i18nNamesFlag bool 1033 addMemberPermission string // 加人入群权限(all_members/only_owner/unknown) 1034 addMemberPermissionFlag bool 1035 shareCardPermission string // 群分享权限(allowed/not_allowed/unknown) 1036 shareCardPermissionFlag bool 1037 atAllPermission string // at 所有人权限(all_members/only_owner/unknown) 1038 atAllPermissionFlag bool 1039 editPermission string // 群编辑权限(all_members/only_owner/unknown) 1040 editPermissionFlag bool 1041 membershipApproval string // 加群审批(no_approval_required/approval_required) 1042 membershipApprovalFlag bool 1043 joinMessageVisibility string // 入群消息可见性(only_owner/all_members/not_anyone) 1044 joinMessageVisibilityFlag bool 1045 leaveMessageVisibility string // 出群消息可见性(only_owner/all_members/not_anyone) 1046 leaveMessageVisibilityFlag bool 1047 moderationPermission string // 发言权限(all_members/only_owner) 1048 moderationPermissionFlag bool 1049 ownerId *UserId // 用户 ID 1050 ownerIdFlag bool 1051 } 1052 1053 func NewChatChangeBuilder() *ChatChangeBuilder { 1054 builder := &ChatChangeBuilder{} 1055 return builder 1056 } 1057 1058 // 群头像 1059 // 1060 // 示例值:default-avatar_0cda3662-875a-4354-94d2-83e7393c7123 1061 func (builder *ChatChangeBuilder) Avatar(avatar string) *ChatChangeBuilder { 1062 builder.avatar = avatar 1063 builder.avatarFlag = true 1064 return builder 1065 } 1066 1067 // 群名称 1068 // 1069 // 示例值:群名称测试 1070 func (builder *ChatChangeBuilder) Name(name string) *ChatChangeBuilder { 1071 builder.name = name 1072 builder.nameFlag = true 1073 return builder 1074 } 1075 1076 // 群描述 1077 // 1078 // 示例值:群描述测试 1079 func (builder *ChatChangeBuilder) Description(description string) *ChatChangeBuilder { 1080 builder.description = description 1081 builder.descriptionFlag = true 1082 return builder 1083 } 1084 1085 // 群国际化名称 1086 // 1087 // 示例值: 1088 func (builder *ChatChangeBuilder) I18nNames(i18nNames *I18nNames) *ChatChangeBuilder { 1089 builder.i18nNames = i18nNames 1090 builder.i18nNamesFlag = true 1091 return builder 1092 } 1093 1094 // 加人入群权限(all_members/only_owner/unknown) 1095 // 1096 // 示例值:all_members 1097 func (builder *ChatChangeBuilder) AddMemberPermission(addMemberPermission string) *ChatChangeBuilder { 1098 builder.addMemberPermission = addMemberPermission 1099 builder.addMemberPermissionFlag = true 1100 return builder 1101 } 1102 1103 // 群分享权限(allowed/not_allowed/unknown) 1104 // 1105 // 示例值:allowed 1106 func (builder *ChatChangeBuilder) ShareCardPermission(shareCardPermission string) *ChatChangeBuilder { 1107 builder.shareCardPermission = shareCardPermission 1108 builder.shareCardPermissionFlag = true 1109 return builder 1110 } 1111 1112 // at 所有人权限(all_members/only_owner/unknown) 1113 // 1114 // 示例值:only_owner 1115 func (builder *ChatChangeBuilder) AtAllPermission(atAllPermission string) *ChatChangeBuilder { 1116 builder.atAllPermission = atAllPermission 1117 builder.atAllPermissionFlag = true 1118 return builder 1119 } 1120 1121 // 群编辑权限(all_members/only_owner/unknown) 1122 // 1123 // 示例值:all_members 1124 func (builder *ChatChangeBuilder) EditPermission(editPermission string) *ChatChangeBuilder { 1125 builder.editPermission = editPermission 1126 builder.editPermissionFlag = true 1127 return builder 1128 } 1129 1130 // 加群审批(no_approval_required/approval_required) 1131 // 1132 // 示例值:approval_required 1133 func (builder *ChatChangeBuilder) MembershipApproval(membershipApproval string) *ChatChangeBuilder { 1134 builder.membershipApproval = membershipApproval 1135 builder.membershipApprovalFlag = true 1136 return builder 1137 } 1138 1139 // 入群消息可见性(only_owner/all_members/not_anyone) 1140 // 1141 // 示例值:all_members 1142 func (builder *ChatChangeBuilder) JoinMessageVisibility(joinMessageVisibility string) *ChatChangeBuilder { 1143 builder.joinMessageVisibility = joinMessageVisibility 1144 builder.joinMessageVisibilityFlag = true 1145 return builder 1146 } 1147 1148 // 出群消息可见性(only_owner/all_members/not_anyone) 1149 // 1150 // 示例值:all_members 1151 func (builder *ChatChangeBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *ChatChangeBuilder { 1152 builder.leaveMessageVisibility = leaveMessageVisibility 1153 builder.leaveMessageVisibilityFlag = true 1154 return builder 1155 } 1156 1157 // 发言权限(all_members/only_owner) 1158 // 1159 // 示例值:all_members 1160 func (builder *ChatChangeBuilder) ModerationPermission(moderationPermission string) *ChatChangeBuilder { 1161 builder.moderationPermission = moderationPermission 1162 builder.moderationPermissionFlag = true 1163 return builder 1164 } 1165 1166 // 用户 ID 1167 // 1168 // 示例值: 1169 func (builder *ChatChangeBuilder) OwnerId(ownerId *UserId) *ChatChangeBuilder { 1170 builder.ownerId = ownerId 1171 builder.ownerIdFlag = true 1172 return builder 1173 } 1174 1175 func (builder *ChatChangeBuilder) Build() *ChatChange { 1176 req := &ChatChange{} 1177 if builder.avatarFlag { 1178 req.Avatar = &builder.avatar 1179 1180 } 1181 if builder.nameFlag { 1182 req.Name = &builder.name 1183 1184 } 1185 if builder.descriptionFlag { 1186 req.Description = &builder.description 1187 1188 } 1189 if builder.i18nNamesFlag { 1190 req.I18nNames = builder.i18nNames 1191 } 1192 if builder.addMemberPermissionFlag { 1193 req.AddMemberPermission = &builder.addMemberPermission 1194 1195 } 1196 if builder.shareCardPermissionFlag { 1197 req.ShareCardPermission = &builder.shareCardPermission 1198 1199 } 1200 if builder.atAllPermissionFlag { 1201 req.AtAllPermission = &builder.atAllPermission 1202 1203 } 1204 if builder.editPermissionFlag { 1205 req.EditPermission = &builder.editPermission 1206 1207 } 1208 if builder.membershipApprovalFlag { 1209 req.MembershipApproval = &builder.membershipApproval 1210 1211 } 1212 if builder.joinMessageVisibilityFlag { 1213 req.JoinMessageVisibility = &builder.joinMessageVisibility 1214 1215 } 1216 if builder.leaveMessageVisibilityFlag { 1217 req.LeaveMessageVisibility = &builder.leaveMessageVisibility 1218 1219 } 1220 if builder.moderationPermissionFlag { 1221 req.ModerationPermission = &builder.moderationPermission 1222 1223 } 1224 if builder.ownerIdFlag { 1225 req.OwnerId = builder.ownerId 1226 } 1227 1228 return req 1229 } 1230 1231 type ChatTabContent struct { 1232 Url *string `json:"url,omitempty"` // URL类型 1233 Doc *string `json:"doc,omitempty"` // Doc链接 1234 MeetingMinute *string `json:"meeting_minute,omitempty"` // 会议纪要 1235 } 1236 1237 type ChatTabContentBuilder struct { 1238 url string // URL类型 1239 urlFlag bool 1240 doc string // Doc链接 1241 docFlag bool 1242 meetingMinute string // 会议纪要 1243 meetingMinuteFlag bool 1244 } 1245 1246 func NewChatTabContentBuilder() *ChatTabContentBuilder { 1247 builder := &ChatTabContentBuilder{} 1248 return builder 1249 } 1250 1251 // URL类型 1252 // 1253 // 示例值:https://www.feishu.cn 1254 func (builder *ChatTabContentBuilder) Url(url string) *ChatTabContentBuilder { 1255 builder.url = url 1256 builder.urlFlag = true 1257 return builder 1258 } 1259 1260 // Doc链接 1261 // 1262 // 示例值:https://bytedance.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz 1263 func (builder *ChatTabContentBuilder) Doc(doc string) *ChatTabContentBuilder { 1264 builder.doc = doc 1265 builder.docFlag = true 1266 return builder 1267 } 1268 1269 // 会议纪要 1270 // 1271 // 示例值:https://bytedance.feishu.cn/docs/doccnvIXbV22i6hSD3utar4123dx 1272 func (builder *ChatTabContentBuilder) MeetingMinute(meetingMinute string) *ChatTabContentBuilder { 1273 builder.meetingMinute = meetingMinute 1274 builder.meetingMinuteFlag = true 1275 return builder 1276 } 1277 1278 func (builder *ChatTabContentBuilder) Build() *ChatTabContent { 1279 req := &ChatTabContent{} 1280 if builder.urlFlag { 1281 req.Url = &builder.url 1282 1283 } 1284 if builder.docFlag { 1285 req.Doc = &builder.doc 1286 1287 } 1288 if builder.meetingMinuteFlag { 1289 req.MeetingMinute = &builder.meetingMinute 1290 1291 } 1292 return req 1293 } 1294 1295 type Emoji struct { 1296 EmojiType *string `json:"emoji_type,omitempty"` // emoji类型 [emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce) 1297 } 1298 1299 type EmojiBuilder struct { 1300 emojiType string // emoji类型 [emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce) 1301 emojiTypeFlag bool 1302 } 1303 1304 func NewEmojiBuilder() *EmojiBuilder { 1305 builder := &EmojiBuilder{} 1306 return builder 1307 } 1308 1309 // emoji类型 [emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce) 1310 // 1311 // 示例值:SMILE 1312 func (builder *EmojiBuilder) EmojiType(emojiType string) *EmojiBuilder { 1313 builder.emojiType = emojiType 1314 builder.emojiTypeFlag = true 1315 return builder 1316 } 1317 1318 func (builder *EmojiBuilder) Build() *Emoji { 1319 req := &Emoji{} 1320 if builder.emojiTypeFlag { 1321 req.EmojiType = &builder.emojiType 1322 1323 } 1324 return req 1325 } 1326 1327 type EventMessage struct { 1328 MessageId *string `json:"message_id,omitempty"` // 消息的 open_message_id 1329 RootId *string `json:"root_id,omitempty"` // 回复消息 根 id 1330 ParentId *string `json:"parent_id,omitempty"` // 回复消息 父 id 1331 CreateTime *string `json:"create_time,omitempty"` // 消息发送时间 毫秒 1332 ChatId *string `json:"chat_id,omitempty"` // 消息所在的群组 id 1333 ChatType *string `json:"chat_type,omitempty"` // 消息所在的群组类型,单聊(p2p)或群聊(group) 1334 MessageType *string `json:"message_type,omitempty"` // 消息类型 1335 Content *string `json:"content,omitempty"` // 消息内容, json 格式 ;[各类型消息Content](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/events/message_content) 1336 Mentions []*MentionEvent `json:"mentions,omitempty"` // 被提及用户的信息 1337 } 1338 1339 type EventMessageBuilder struct { 1340 messageId string // 消息的 open_message_id 1341 messageIdFlag bool 1342 rootId string // 回复消息 根 id 1343 rootIdFlag bool 1344 parentId string // 回复消息 父 id 1345 parentIdFlag bool 1346 createTime string // 消息发送时间 毫秒 1347 createTimeFlag bool 1348 chatId string // 消息所在的群组 id 1349 chatIdFlag bool 1350 chatType string // 消息所在的群组类型,单聊(p2p)或群聊(group) 1351 chatTypeFlag bool 1352 messageType string // 消息类型 1353 messageTypeFlag bool 1354 content string // 消息内容, json 格式 ;[各类型消息Content](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/events/message_content) 1355 contentFlag bool 1356 mentions []*MentionEvent // 被提及用户的信息 1357 mentionsFlag bool 1358 } 1359 1360 func NewEventMessageBuilder() *EventMessageBuilder { 1361 builder := &EventMessageBuilder{} 1362 return builder 1363 } 1364 1365 // 消息的 open_message_id 1366 // 1367 // 示例值:om_5ce6d572455d361153b7cb51da133945 1368 func (builder *EventMessageBuilder) MessageId(messageId string) *EventMessageBuilder { 1369 builder.messageId = messageId 1370 builder.messageIdFlag = true 1371 return builder 1372 } 1373 1374 // 回复消息 根 id 1375 // 1376 // 示例值:om_5ce6d572455d361153b7cb5xxfsdfsdfdsf 1377 func (builder *EventMessageBuilder) RootId(rootId string) *EventMessageBuilder { 1378 builder.rootId = rootId 1379 builder.rootIdFlag = true 1380 return builder 1381 } 1382 1383 // 回复消息 父 id 1384 // 1385 // 示例值:om_5ce6d572455d361153b7cb5xxfsdfsdfdsf 1386 func (builder *EventMessageBuilder) ParentId(parentId string) *EventMessageBuilder { 1387 builder.parentId = parentId 1388 builder.parentIdFlag = true 1389 return builder 1390 } 1391 1392 // 消息发送时间 毫秒 1393 // 1394 // 示例值:1609073151345 1395 func (builder *EventMessageBuilder) CreateTime(createTime string) *EventMessageBuilder { 1396 builder.createTime = createTime 1397 builder.createTimeFlag = true 1398 return builder 1399 } 1400 1401 // 消息所在的群组 id 1402 // 1403 // 示例值:oc_5ce6d572455d361153b7xx51da133945 1404 func (builder *EventMessageBuilder) ChatId(chatId string) *EventMessageBuilder { 1405 builder.chatId = chatId 1406 builder.chatIdFlag = true 1407 return builder 1408 } 1409 1410 // 消息所在的群组类型,单聊(p2p)或群聊(group) 1411 // 1412 // 示例值:group 1413 func (builder *EventMessageBuilder) ChatType(chatType string) *EventMessageBuilder { 1414 builder.chatType = chatType 1415 builder.chatTypeFlag = true 1416 return builder 1417 } 1418 1419 // 消息类型 1420 // 1421 // 示例值:text 1422 func (builder *EventMessageBuilder) MessageType(messageType string) *EventMessageBuilder { 1423 builder.messageType = messageType 1424 builder.messageTypeFlag = true 1425 return builder 1426 } 1427 1428 // 消息内容, json 格式 ;[各类型消息Content](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/events/message_content) 1429 // 1430 // 示例值:{\"text\":\"@_user_1 hello\"} 1431 func (builder *EventMessageBuilder) Content(content string) *EventMessageBuilder { 1432 builder.content = content 1433 builder.contentFlag = true 1434 return builder 1435 } 1436 1437 // 被提及用户的信息 1438 // 1439 // 示例值: 1440 func (builder *EventMessageBuilder) Mentions(mentions []*MentionEvent) *EventMessageBuilder { 1441 builder.mentions = mentions 1442 builder.mentionsFlag = true 1443 return builder 1444 } 1445 1446 func (builder *EventMessageBuilder) Build() *EventMessage { 1447 req := &EventMessage{} 1448 if builder.messageIdFlag { 1449 req.MessageId = &builder.messageId 1450 1451 } 1452 if builder.rootIdFlag { 1453 req.RootId = &builder.rootId 1454 1455 } 1456 if builder.parentIdFlag { 1457 req.ParentId = &builder.parentId 1458 1459 } 1460 if builder.createTimeFlag { 1461 req.CreateTime = &builder.createTime 1462 1463 } 1464 if builder.chatIdFlag { 1465 req.ChatId = &builder.chatId 1466 1467 } 1468 if builder.chatTypeFlag { 1469 req.ChatType = &builder.chatType 1470 1471 } 1472 if builder.messageTypeFlag { 1473 req.MessageType = &builder.messageType 1474 1475 } 1476 if builder.contentFlag { 1477 req.Content = &builder.content 1478 1479 } 1480 if builder.mentionsFlag { 1481 req.Mentions = builder.mentions 1482 } 1483 return req 1484 } 1485 1486 type EventMessageReader struct { 1487 ReaderId *UserId `json:"reader_id,omitempty"` // 用户 ID 1488 ReadTime *string `json:"read_time,omitempty"` // 阅读时间 1489 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 1490 } 1491 1492 type EventMessageReaderBuilder struct { 1493 readerId *UserId // 用户 ID 1494 readerIdFlag bool 1495 readTime string // 阅读时间 1496 readTimeFlag bool 1497 tenantKey string // tenant key 1498 tenantKeyFlag bool 1499 } 1500 1501 func NewEventMessageReaderBuilder() *EventMessageReaderBuilder { 1502 builder := &EventMessageReaderBuilder{} 1503 return builder 1504 } 1505 1506 // 用户 ID 1507 // 1508 // 示例值:ou_5ad573a6411d72b8305fda3a9c15c70e 1509 func (builder *EventMessageReaderBuilder) ReaderId(readerId *UserId) *EventMessageReaderBuilder { 1510 builder.readerId = readerId 1511 builder.readerIdFlag = true 1512 return builder 1513 } 1514 1515 // 阅读时间 1516 // 1517 // 示例值:1609484183000 1518 func (builder *EventMessageReaderBuilder) ReadTime(readTime string) *EventMessageReaderBuilder { 1519 builder.readTime = readTime 1520 builder.readTimeFlag = true 1521 return builder 1522 } 1523 1524 // tenant key 1525 // 1526 // 示例值:736588c9260f175e 1527 func (builder *EventMessageReaderBuilder) TenantKey(tenantKey string) *EventMessageReaderBuilder { 1528 builder.tenantKey = tenantKey 1529 builder.tenantKeyFlag = true 1530 return builder 1531 } 1532 1533 func (builder *EventMessageReaderBuilder) Build() *EventMessageReader { 1534 req := &EventMessageReader{} 1535 if builder.readerIdFlag { 1536 req.ReaderId = builder.readerId 1537 } 1538 if builder.readTimeFlag { 1539 req.ReadTime = &builder.readTime 1540 1541 } 1542 if builder.tenantKeyFlag { 1543 req.TenantKey = &builder.tenantKey 1544 1545 } 1546 return req 1547 } 1548 1549 type EventSender struct { 1550 SenderId *UserId `json:"sender_id,omitempty"` // 用户 ID 1551 SenderType *string `json:"sender_type,omitempty"` // 消息发送者类型。目前只支持用户(user)发送的消息。 1552 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 1553 } 1554 1555 type EventSenderBuilder struct { 1556 senderId *UserId // 用户 ID 1557 senderIdFlag bool 1558 senderType string // 消息发送者类型。目前只支持用户(user)发送的消息。 1559 senderTypeFlag bool 1560 tenantKey string // tenant key 1561 tenantKeyFlag bool 1562 } 1563 1564 func NewEventSenderBuilder() *EventSenderBuilder { 1565 builder := &EventSenderBuilder{} 1566 return builder 1567 } 1568 1569 // 用户 ID 1570 // 1571 // 示例值:ou_5ad573a6411d72b8305fda3a9c15c70e 1572 func (builder *EventSenderBuilder) SenderId(senderId *UserId) *EventSenderBuilder { 1573 builder.senderId = senderId 1574 builder.senderIdFlag = true 1575 return builder 1576 } 1577 1578 // 消息发送者类型。目前只支持用户(user)发送的消息。 1579 // 1580 // 示例值:user 1581 func (builder *EventSenderBuilder) SenderType(senderType string) *EventSenderBuilder { 1582 builder.senderType = senderType 1583 builder.senderTypeFlag = true 1584 return builder 1585 } 1586 1587 // tenant key 1588 // 1589 // 示例值:736588c9260f175e 1590 func (builder *EventSenderBuilder) TenantKey(tenantKey string) *EventSenderBuilder { 1591 builder.tenantKey = tenantKey 1592 builder.tenantKeyFlag = true 1593 return builder 1594 } 1595 1596 func (builder *EventSenderBuilder) Build() *EventSender { 1597 req := &EventSender{} 1598 if builder.senderIdFlag { 1599 req.SenderId = builder.senderId 1600 } 1601 if builder.senderTypeFlag { 1602 req.SenderType = &builder.senderType 1603 1604 } 1605 if builder.tenantKeyFlag { 1606 req.TenantKey = &builder.tenantKey 1607 1608 } 1609 return req 1610 } 1611 1612 type File struct { 1613 } 1614 1615 type I18nNames struct { 1616 ZhCn *string `json:"zh_cn,omitempty"` // 中文名 1617 EnUs *string `json:"en_us,omitempty"` // 英文名 1618 JaJp *string `json:"ja_jp,omitempty"` // 日文名 1619 } 1620 1621 type I18nNamesBuilder struct { 1622 zhCn string // 中文名 1623 zhCnFlag bool 1624 enUs string // 英文名 1625 enUsFlag bool 1626 jaJp string // 日文名 1627 jaJpFlag bool 1628 } 1629 1630 func NewI18nNamesBuilder() *I18nNamesBuilder { 1631 builder := &I18nNamesBuilder{} 1632 return builder 1633 } 1634 1635 // 中文名 1636 // 1637 // 示例值:群聊 1638 func (builder *I18nNamesBuilder) ZhCn(zhCn string) *I18nNamesBuilder { 1639 builder.zhCn = zhCn 1640 builder.zhCnFlag = true 1641 return builder 1642 } 1643 1644 // 英文名 1645 // 1646 // 示例值:group chat 1647 func (builder *I18nNamesBuilder) EnUs(enUs string) *I18nNamesBuilder { 1648 builder.enUs = enUs 1649 builder.enUsFlag = true 1650 return builder 1651 } 1652 1653 // 日文名 1654 // 1655 // 示例值:グループチャット 1656 func (builder *I18nNamesBuilder) JaJp(jaJp string) *I18nNamesBuilder { 1657 builder.jaJp = jaJp 1658 builder.jaJpFlag = true 1659 return builder 1660 } 1661 1662 func (builder *I18nNamesBuilder) Build() *I18nNames { 1663 req := &I18nNames{} 1664 if builder.zhCnFlag { 1665 req.ZhCn = &builder.zhCn 1666 1667 } 1668 if builder.enUsFlag { 1669 req.EnUs = &builder.enUs 1670 1671 } 1672 if builder.jaJpFlag { 1673 req.JaJp = &builder.jaJp 1674 1675 } 1676 return req 1677 } 1678 1679 type ImDepthData struct { 1680 PDate *string `json:"p_date,omitempty"` // 分区日期 1681 DepartmentId *string `json:"department_id,omitempty"` // 部门id 1682 DepartmentPath *string `json:"department_path,omitempty"` // 部门路径 1683 SendMsgRate *float64 `json:"send_msg_rate,omitempty"` // 发消息用户渗透率 1684 AvgSendMsgCnt *float64 `json:"avg_send_msg_cnt,omitempty"` // 人均发消息数量 1685 PcSendMsgRate *float64 `json:"pc_send_msg_rate,omitempty"` // 仅 PC 端的发消息用户渗透率 1686 PcAvgSendMsgCnt *float64 `json:"pc_avg_send_msg_cnt,omitempty"` // 仅 PC 端的人均发消息数量 1687 MobileSendMsgRate *float64 `json:"mobile_send_msg_rate,omitempty"` // 仅移动端的发消息用户渗透率 1688 MobileAvgSendMsgCnt *float64 `json:"mobile_avg_send_msg_cnt,omitempty"` // 仅移动端的人均发消息数量 1689 MeetingGroupSendMsgRate *float64 `json:"meeting_group_send_msg_rate,omitempty"` // 会议群发消息用户渗透率 1690 TenantGroupSendMsgRate *float64 `json:"tenant_group_send_msg_rate,omitempty"` // 全员群发消息用户渗透率 1691 DeptGroupSendMsgRate *float64 `json:"dept_group_send_msg_rate,omitempty"` // 部门群发消息用户渗透率 1692 TopicGroupSendMsgRate *float64 `json:"topic_group_send_msg_rate,omitempty"` // 话题群发消息用户渗透率 1693 GroupAtMsgRate *float64 `json:"group_at_msg_rate,omitempty"` // 群聊中 @ 消息占比 1694 GroupReplyMsgRate *float64 `json:"group_reply_msg_rate,omitempty"` // 群聊中回复消息占比 1695 ReactionRate *float64 `json:"reaction_rate,omitempty"` // 发送 reaction 用户渗透率 1696 P2pSendMsgRate *float64 `json:"p2p_send_msg_rate,omitempty"` // 发送单聊消息占比 1697 ImgSendMsgRate *float64 `json:"img_send_msg_rate,omitempty"` // 图片消息用户渗透率 1698 FileSendMsgRate *float64 `json:"file_send_msg_rate,omitempty"` // 文件消息用户渗透率 1699 StickerSendMsgRate *float64 `json:"sticker_send_msg_rate,omitempty"` // 表情包消息用户渗透率 1700 PostSendMsgRate *float64 `json:"post_send_msg_rate,omitempty"` // 富文本消息用户渗透率 1701 } 1702 1703 type ImDepthDataBuilder struct { 1704 pDate string // 分区日期 1705 pDateFlag bool 1706 departmentId string // 部门id 1707 departmentIdFlag bool 1708 departmentPath string // 部门路径 1709 departmentPathFlag bool 1710 sendMsgRate float64 // 发消息用户渗透率 1711 sendMsgRateFlag bool 1712 avgSendMsgCnt float64 // 人均发消息数量 1713 avgSendMsgCntFlag bool 1714 pcSendMsgRate float64 // 仅 PC 端的发消息用户渗透率 1715 pcSendMsgRateFlag bool 1716 pcAvgSendMsgCnt float64 // 仅 PC 端的人均发消息数量 1717 pcAvgSendMsgCntFlag bool 1718 mobileSendMsgRate float64 // 仅移动端的发消息用户渗透率 1719 mobileSendMsgRateFlag bool 1720 mobileAvgSendMsgCnt float64 // 仅移动端的人均发消息数量 1721 mobileAvgSendMsgCntFlag bool 1722 meetingGroupSendMsgRate float64 // 会议群发消息用户渗透率 1723 meetingGroupSendMsgRateFlag bool 1724 tenantGroupSendMsgRate float64 // 全员群发消息用户渗透率 1725 tenantGroupSendMsgRateFlag bool 1726 deptGroupSendMsgRate float64 // 部门群发消息用户渗透率 1727 deptGroupSendMsgRateFlag bool 1728 topicGroupSendMsgRate float64 // 话题群发消息用户渗透率 1729 topicGroupSendMsgRateFlag bool 1730 groupAtMsgRate float64 // 群聊中 @ 消息占比 1731 groupAtMsgRateFlag bool 1732 groupReplyMsgRate float64 // 群聊中回复消息占比 1733 groupReplyMsgRateFlag bool 1734 reactionRate float64 // 发送 reaction 用户渗透率 1735 reactionRateFlag bool 1736 p2pSendMsgRate float64 // 发送单聊消息占比 1737 p2pSendMsgRateFlag bool 1738 imgSendMsgRate float64 // 图片消息用户渗透率 1739 imgSendMsgRateFlag bool 1740 fileSendMsgRate float64 // 文件消息用户渗透率 1741 fileSendMsgRateFlag bool 1742 stickerSendMsgRate float64 // 表情包消息用户渗透率 1743 stickerSendMsgRateFlag bool 1744 postSendMsgRate float64 // 富文本消息用户渗透率 1745 postSendMsgRateFlag bool 1746 } 1747 1748 func NewImDepthDataBuilder() *ImDepthDataBuilder { 1749 builder := &ImDepthDataBuilder{} 1750 return builder 1751 } 1752 1753 // 分区日期 1754 // 1755 // 示例值:2022-02-02 1756 func (builder *ImDepthDataBuilder) PDate(pDate string) *ImDepthDataBuilder { 1757 builder.pDate = pDate 1758 builder.pDateFlag = true 1759 return builder 1760 } 1761 1762 // 部门id 1763 // 1764 // 示例值:123456 1765 func (builder *ImDepthDataBuilder) DepartmentId(departmentId string) *ImDepthDataBuilder { 1766 builder.departmentId = departmentId 1767 builder.departmentIdFlag = true 1768 return builder 1769 } 1770 1771 // 部门路径 1772 // 1773 // 示例值:test/subtest 1774 func (builder *ImDepthDataBuilder) DepartmentPath(departmentPath string) *ImDepthDataBuilder { 1775 builder.departmentPath = departmentPath 1776 builder.departmentPathFlag = true 1777 return builder 1778 } 1779 1780 // 发消息用户渗透率 1781 // 1782 // 示例值:0.50 1783 func (builder *ImDepthDataBuilder) SendMsgRate(sendMsgRate float64) *ImDepthDataBuilder { 1784 builder.sendMsgRate = sendMsgRate 1785 builder.sendMsgRateFlag = true 1786 return builder 1787 } 1788 1789 // 人均发消息数量 1790 // 1791 // 示例值:50 1792 func (builder *ImDepthDataBuilder) AvgSendMsgCnt(avgSendMsgCnt float64) *ImDepthDataBuilder { 1793 builder.avgSendMsgCnt = avgSendMsgCnt 1794 builder.avgSendMsgCntFlag = true 1795 return builder 1796 } 1797 1798 // 仅 PC 端的发消息用户渗透率 1799 // 1800 // 示例值:0.50 1801 func (builder *ImDepthDataBuilder) PcSendMsgRate(pcSendMsgRate float64) *ImDepthDataBuilder { 1802 builder.pcSendMsgRate = pcSendMsgRate 1803 builder.pcSendMsgRateFlag = true 1804 return builder 1805 } 1806 1807 // 仅 PC 端的人均发消息数量 1808 // 1809 // 示例值:50 1810 func (builder *ImDepthDataBuilder) PcAvgSendMsgCnt(pcAvgSendMsgCnt float64) *ImDepthDataBuilder { 1811 builder.pcAvgSendMsgCnt = pcAvgSendMsgCnt 1812 builder.pcAvgSendMsgCntFlag = true 1813 return builder 1814 } 1815 1816 // 仅移动端的发消息用户渗透率 1817 // 1818 // 示例值:0.50 1819 func (builder *ImDepthDataBuilder) MobileSendMsgRate(mobileSendMsgRate float64) *ImDepthDataBuilder { 1820 builder.mobileSendMsgRate = mobileSendMsgRate 1821 builder.mobileSendMsgRateFlag = true 1822 return builder 1823 } 1824 1825 // 仅移动端的人均发消息数量 1826 // 1827 // 示例值:50 1828 func (builder *ImDepthDataBuilder) MobileAvgSendMsgCnt(mobileAvgSendMsgCnt float64) *ImDepthDataBuilder { 1829 builder.mobileAvgSendMsgCnt = mobileAvgSendMsgCnt 1830 builder.mobileAvgSendMsgCntFlag = true 1831 return builder 1832 } 1833 1834 // 会议群发消息用户渗透率 1835 // 1836 // 示例值:0.50 1837 func (builder *ImDepthDataBuilder) MeetingGroupSendMsgRate(meetingGroupSendMsgRate float64) *ImDepthDataBuilder { 1838 builder.meetingGroupSendMsgRate = meetingGroupSendMsgRate 1839 builder.meetingGroupSendMsgRateFlag = true 1840 return builder 1841 } 1842 1843 // 全员群发消息用户渗透率 1844 // 1845 // 示例值:0.50 1846 func (builder *ImDepthDataBuilder) TenantGroupSendMsgRate(tenantGroupSendMsgRate float64) *ImDepthDataBuilder { 1847 builder.tenantGroupSendMsgRate = tenantGroupSendMsgRate 1848 builder.tenantGroupSendMsgRateFlag = true 1849 return builder 1850 } 1851 1852 // 部门群发消息用户渗透率 1853 // 1854 // 示例值:0.50 1855 func (builder *ImDepthDataBuilder) DeptGroupSendMsgRate(deptGroupSendMsgRate float64) *ImDepthDataBuilder { 1856 builder.deptGroupSendMsgRate = deptGroupSendMsgRate 1857 builder.deptGroupSendMsgRateFlag = true 1858 return builder 1859 } 1860 1861 // 话题群发消息用户渗透率 1862 // 1863 // 示例值:0.50 1864 func (builder *ImDepthDataBuilder) TopicGroupSendMsgRate(topicGroupSendMsgRate float64) *ImDepthDataBuilder { 1865 builder.topicGroupSendMsgRate = topicGroupSendMsgRate 1866 builder.topicGroupSendMsgRateFlag = true 1867 return builder 1868 } 1869 1870 // 群聊中 @ 消息占比 1871 // 1872 // 示例值:0.50 1873 func (builder *ImDepthDataBuilder) GroupAtMsgRate(groupAtMsgRate float64) *ImDepthDataBuilder { 1874 builder.groupAtMsgRate = groupAtMsgRate 1875 builder.groupAtMsgRateFlag = true 1876 return builder 1877 } 1878 1879 // 群聊中回复消息占比 1880 // 1881 // 示例值:0.50 1882 func (builder *ImDepthDataBuilder) GroupReplyMsgRate(groupReplyMsgRate float64) *ImDepthDataBuilder { 1883 builder.groupReplyMsgRate = groupReplyMsgRate 1884 builder.groupReplyMsgRateFlag = true 1885 return builder 1886 } 1887 1888 // 发送 reaction 用户渗透率 1889 // 1890 // 示例值:0.50 1891 func (builder *ImDepthDataBuilder) ReactionRate(reactionRate float64) *ImDepthDataBuilder { 1892 builder.reactionRate = reactionRate 1893 builder.reactionRateFlag = true 1894 return builder 1895 } 1896 1897 // 发送单聊消息占比 1898 // 1899 // 示例值:0.50 1900 func (builder *ImDepthDataBuilder) P2pSendMsgRate(p2pSendMsgRate float64) *ImDepthDataBuilder { 1901 builder.p2pSendMsgRate = p2pSendMsgRate 1902 builder.p2pSendMsgRateFlag = true 1903 return builder 1904 } 1905 1906 // 图片消息用户渗透率 1907 // 1908 // 示例值:0.50 1909 func (builder *ImDepthDataBuilder) ImgSendMsgRate(imgSendMsgRate float64) *ImDepthDataBuilder { 1910 builder.imgSendMsgRate = imgSendMsgRate 1911 builder.imgSendMsgRateFlag = true 1912 return builder 1913 } 1914 1915 // 文件消息用户渗透率 1916 // 1917 // 示例值:0.50 1918 func (builder *ImDepthDataBuilder) FileSendMsgRate(fileSendMsgRate float64) *ImDepthDataBuilder { 1919 builder.fileSendMsgRate = fileSendMsgRate 1920 builder.fileSendMsgRateFlag = true 1921 return builder 1922 } 1923 1924 // 表情包消息用户渗透率 1925 // 1926 // 示例值:0.50 1927 func (builder *ImDepthDataBuilder) StickerSendMsgRate(stickerSendMsgRate float64) *ImDepthDataBuilder { 1928 builder.stickerSendMsgRate = stickerSendMsgRate 1929 builder.stickerSendMsgRateFlag = true 1930 return builder 1931 } 1932 1933 // 富文本消息用户渗透率 1934 // 1935 // 示例值:0.50 1936 func (builder *ImDepthDataBuilder) PostSendMsgRate(postSendMsgRate float64) *ImDepthDataBuilder { 1937 builder.postSendMsgRate = postSendMsgRate 1938 builder.postSendMsgRateFlag = true 1939 return builder 1940 } 1941 1942 func (builder *ImDepthDataBuilder) Build() *ImDepthData { 1943 req := &ImDepthData{} 1944 if builder.pDateFlag { 1945 req.PDate = &builder.pDate 1946 1947 } 1948 if builder.departmentIdFlag { 1949 req.DepartmentId = &builder.departmentId 1950 1951 } 1952 if builder.departmentPathFlag { 1953 req.DepartmentPath = &builder.departmentPath 1954 1955 } 1956 if builder.sendMsgRateFlag { 1957 req.SendMsgRate = &builder.sendMsgRate 1958 1959 } 1960 if builder.avgSendMsgCntFlag { 1961 req.AvgSendMsgCnt = &builder.avgSendMsgCnt 1962 1963 } 1964 if builder.pcSendMsgRateFlag { 1965 req.PcSendMsgRate = &builder.pcSendMsgRate 1966 1967 } 1968 if builder.pcAvgSendMsgCntFlag { 1969 req.PcAvgSendMsgCnt = &builder.pcAvgSendMsgCnt 1970 1971 } 1972 if builder.mobileSendMsgRateFlag { 1973 req.MobileSendMsgRate = &builder.mobileSendMsgRate 1974 1975 } 1976 if builder.mobileAvgSendMsgCntFlag { 1977 req.MobileAvgSendMsgCnt = &builder.mobileAvgSendMsgCnt 1978 1979 } 1980 if builder.meetingGroupSendMsgRateFlag { 1981 req.MeetingGroupSendMsgRate = &builder.meetingGroupSendMsgRate 1982 1983 } 1984 if builder.tenantGroupSendMsgRateFlag { 1985 req.TenantGroupSendMsgRate = &builder.tenantGroupSendMsgRate 1986 1987 } 1988 if builder.deptGroupSendMsgRateFlag { 1989 req.DeptGroupSendMsgRate = &builder.deptGroupSendMsgRate 1990 1991 } 1992 if builder.topicGroupSendMsgRateFlag { 1993 req.TopicGroupSendMsgRate = &builder.topicGroupSendMsgRate 1994 1995 } 1996 if builder.groupAtMsgRateFlag { 1997 req.GroupAtMsgRate = &builder.groupAtMsgRate 1998 1999 } 2000 if builder.groupReplyMsgRateFlag { 2001 req.GroupReplyMsgRate = &builder.groupReplyMsgRate 2002 2003 } 2004 if builder.reactionRateFlag { 2005 req.ReactionRate = &builder.reactionRate 2006 2007 } 2008 if builder.p2pSendMsgRateFlag { 2009 req.P2pSendMsgRate = &builder.p2pSendMsgRate 2010 2011 } 2012 if builder.imgSendMsgRateFlag { 2013 req.ImgSendMsgRate = &builder.imgSendMsgRate 2014 2015 } 2016 if builder.fileSendMsgRateFlag { 2017 req.FileSendMsgRate = &builder.fileSendMsgRate 2018 2019 } 2020 if builder.stickerSendMsgRateFlag { 2021 req.StickerSendMsgRate = &builder.stickerSendMsgRate 2022 2023 } 2024 if builder.postSendMsgRateFlag { 2025 req.PostSendMsgRate = &builder.postSendMsgRate 2026 2027 } 2028 return req 2029 } 2030 2031 type Image struct { 2032 } 2033 2034 type ListChat struct { 2035 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 2036 Avatar *string `json:"avatar,omitempty"` // 群头像 URL 2037 Name *string `json:"name,omitempty"` // 群名称 2038 Description *string `json:"description,omitempty"` // 群描述 2039 OwnerId *string `json:"owner_id,omitempty"` // 群主 ID 2040 OwnerIdType *string `json:"owner_id_type,omitempty"` // 群主 ID 类型 2041 External *bool `json:"external,omitempty"` // 是否是外部群 2042 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 2043 2044 } 2045 2046 type ListChatBuilder struct { 2047 chatId string // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 2048 chatIdFlag bool 2049 avatar string // 群头像 URL 2050 avatarFlag bool 2051 name string // 群名称 2052 nameFlag bool 2053 description string // 群描述 2054 descriptionFlag bool 2055 ownerId string // 群主 ID 2056 ownerIdFlag bool 2057 ownerIdType string // 群主 ID 类型 2058 ownerIdTypeFlag bool 2059 external bool // 是否是外部群 2060 externalFlag bool 2061 tenantKey string // tenant key 2062 tenantKeyFlag bool 2063 } 2064 2065 func NewListChatBuilder() *ListChatBuilder { 2066 builder := &ListChatBuilder{} 2067 return builder 2068 } 2069 2070 // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 2071 // 2072 // 示例值:oc_a0553eda9014c201e6969b478895c230 2073 func (builder *ListChatBuilder) ChatId(chatId string) *ListChatBuilder { 2074 builder.chatId = chatId 2075 builder.chatIdFlag = true 2076 return builder 2077 } 2078 2079 // 群头像 URL 2080 // 2081 // 示例值:https://p3-lark-file.byteimg.com/img/lark-avatar-staging/default-avatar_44ae0ca3-e140-494b-956f-78091e348435~100x100.jpg 2082 func (builder *ListChatBuilder) Avatar(avatar string) *ListChatBuilder { 2083 builder.avatar = avatar 2084 builder.avatarFlag = true 2085 return builder 2086 } 2087 2088 // 群名称 2089 // 2090 // 示例值:测试群名称 2091 func (builder *ListChatBuilder) Name(name string) *ListChatBuilder { 2092 builder.name = name 2093 builder.nameFlag = true 2094 return builder 2095 } 2096 2097 // 群描述 2098 // 2099 // 示例值:测试群描述 2100 func (builder *ListChatBuilder) Description(description string) *ListChatBuilder { 2101 builder.description = description 2102 builder.descriptionFlag = true 2103 return builder 2104 } 2105 2106 // 群主 ID 2107 // 2108 // 示例值:4d7a3c6g 2109 func (builder *ListChatBuilder) OwnerId(ownerId string) *ListChatBuilder { 2110 builder.ownerId = ownerId 2111 builder.ownerIdFlag = true 2112 return builder 2113 } 2114 2115 // 群主 ID 类型 2116 // 2117 // 示例值:user_id 2118 func (builder *ListChatBuilder) OwnerIdType(ownerIdType string) *ListChatBuilder { 2119 builder.ownerIdType = ownerIdType 2120 builder.ownerIdTypeFlag = true 2121 return builder 2122 } 2123 2124 // 是否是外部群 2125 // 2126 // 示例值:false 2127 func (builder *ListChatBuilder) External(external bool) *ListChatBuilder { 2128 builder.external = external 2129 builder.externalFlag = true 2130 return builder 2131 } 2132 2133 // tenant key 2134 // 2135 // 示例值:736588c9260f175e 2136 func (builder *ListChatBuilder) TenantKey(tenantKey string) *ListChatBuilder { 2137 builder.tenantKey = tenantKey 2138 builder.tenantKeyFlag = true 2139 return builder 2140 } 2141 2142 func (builder *ListChatBuilder) Build() *ListChat { 2143 req := &ListChat{} 2144 if builder.chatIdFlag { 2145 req.ChatId = &builder.chatId 2146 2147 } 2148 if builder.avatarFlag { 2149 req.Avatar = &builder.avatar 2150 2151 } 2152 if builder.nameFlag { 2153 req.Name = &builder.name 2154 2155 } 2156 if builder.descriptionFlag { 2157 req.Description = &builder.description 2158 2159 } 2160 if builder.ownerIdFlag { 2161 req.OwnerId = &builder.ownerId 2162 2163 } 2164 if builder.ownerIdTypeFlag { 2165 req.OwnerIdType = &builder.ownerIdType 2166 2167 } 2168 if builder.externalFlag { 2169 req.External = &builder.external 2170 2171 } 2172 if builder.tenantKeyFlag { 2173 req.TenantKey = &builder.tenantKey 2174 2175 } 2176 2177 return req 2178 } 2179 2180 type ListEventModerator struct { 2181 TenantKey *string `json:"tenant_key,omitempty"` // 租户 Key 2182 UserId *UserId `json:"user_id,omitempty"` // 用户 ID 2183 } 2184 2185 type ListEventModeratorBuilder struct { 2186 tenantKey string // 租户 Key 2187 tenantKeyFlag bool 2188 userId *UserId // 用户 ID 2189 userIdFlag bool 2190 } 2191 2192 func NewListEventModeratorBuilder() *ListEventModeratorBuilder { 2193 builder := &ListEventModeratorBuilder{} 2194 return builder 2195 } 2196 2197 // 租户 Key 2198 // 2199 // 示例值:86gwe65 2200 func (builder *ListEventModeratorBuilder) TenantKey(tenantKey string) *ListEventModeratorBuilder { 2201 builder.tenantKey = tenantKey 2202 builder.tenantKeyFlag = true 2203 return builder 2204 } 2205 2206 // 用户 ID 2207 // 2208 // 示例值: 2209 func (builder *ListEventModeratorBuilder) UserId(userId *UserId) *ListEventModeratorBuilder { 2210 builder.userId = userId 2211 builder.userIdFlag = true 2212 return builder 2213 } 2214 2215 func (builder *ListEventModeratorBuilder) Build() *ListEventModerator { 2216 req := &ListEventModerator{} 2217 if builder.tenantKeyFlag { 2218 req.TenantKey = &builder.tenantKey 2219 2220 } 2221 if builder.userIdFlag { 2222 req.UserId = builder.userId 2223 } 2224 return req 2225 } 2226 2227 type ListMember struct { 2228 MemberIdType *string `json:"member_id_type,omitempty"` // 成员的用户 ID 类型,与查询参数中的 member_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。 2229 MemberId *string `json:"member_id,omitempty"` // 成员的用户ID,ID值与查询参数中的 member_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 2230 Name *string `json:"name,omitempty"` // 名字 2231 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 2232 } 2233 2234 type ListMemberBuilder struct { 2235 memberIdType string // 成员的用户 ID 类型,与查询参数中的 member_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。 2236 memberIdTypeFlag bool 2237 memberId string // 成员的用户ID,ID值与查询参数中的 member_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 2238 memberIdFlag bool 2239 name string // 名字 2240 nameFlag bool 2241 tenantKey string // tenant key 2242 tenantKeyFlag bool 2243 } 2244 2245 func NewListMemberBuilder() *ListMemberBuilder { 2246 builder := &ListMemberBuilder{} 2247 return builder 2248 } 2249 2250 // 成员的用户 ID 类型,与查询参数中的 member_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。 2251 // 2252 // 示例值:open_id 2253 func (builder *ListMemberBuilder) MemberIdType(memberIdType string) *ListMemberBuilder { 2254 builder.memberIdType = memberIdType 2255 builder.memberIdTypeFlag = true 2256 return builder 2257 } 2258 2259 // 成员的用户ID,ID值与查询参数中的 member_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 2260 // 2261 // 示例值:ou_9204a37300b3700d61effaa439f34295 2262 func (builder *ListMemberBuilder) MemberId(memberId string) *ListMemberBuilder { 2263 builder.memberId = memberId 2264 builder.memberIdFlag = true 2265 return builder 2266 } 2267 2268 // 名字 2269 // 2270 // 示例值:张三 2271 func (builder *ListMemberBuilder) Name(name string) *ListMemberBuilder { 2272 builder.name = name 2273 builder.nameFlag = true 2274 return builder 2275 } 2276 2277 // tenant key 2278 // 2279 // 示例值:736588c9260f175d 2280 func (builder *ListMemberBuilder) TenantKey(tenantKey string) *ListMemberBuilder { 2281 builder.tenantKey = tenantKey 2282 builder.tenantKeyFlag = true 2283 return builder 2284 } 2285 2286 func (builder *ListMemberBuilder) Build() *ListMember { 2287 req := &ListMember{} 2288 if builder.memberIdTypeFlag { 2289 req.MemberIdType = &builder.memberIdType 2290 2291 } 2292 if builder.memberIdFlag { 2293 req.MemberId = &builder.memberId 2294 2295 } 2296 if builder.nameFlag { 2297 req.Name = &builder.name 2298 2299 } 2300 if builder.tenantKeyFlag { 2301 req.TenantKey = &builder.tenantKey 2302 2303 } 2304 return req 2305 } 2306 2307 type ListModerator struct { 2308 UserIdType *string `json:"user_id_type,omitempty"` // 可发言用户 ID 类型 2309 UserId *string `json:"user_id,omitempty"` // 可发言用户 ID 2310 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 2311 } 2312 2313 type ListModeratorBuilder struct { 2314 userIdType string // 可发言用户 ID 类型 2315 userIdTypeFlag bool 2316 userId string // 可发言用户 ID 2317 userIdFlag bool 2318 tenantKey string // tenant key 2319 tenantKeyFlag bool 2320 } 2321 2322 func NewListModeratorBuilder() *ListModeratorBuilder { 2323 builder := &ListModeratorBuilder{} 2324 return builder 2325 } 2326 2327 // 可发言用户 ID 类型 2328 // 2329 // 示例值:user_id 2330 func (builder *ListModeratorBuilder) UserIdType(userIdType string) *ListModeratorBuilder { 2331 builder.userIdType = userIdType 2332 builder.userIdTypeFlag = true 2333 return builder 2334 } 2335 2336 // 可发言用户 ID 2337 // 2338 // 示例值:4d7a3c6g 2339 func (builder *ListModeratorBuilder) UserId(userId string) *ListModeratorBuilder { 2340 builder.userId = userId 2341 builder.userIdFlag = true 2342 return builder 2343 } 2344 2345 // tenant key 2346 // 2347 // 示例值:2ca1d211f64f6438 2348 func (builder *ListModeratorBuilder) TenantKey(tenantKey string) *ListModeratorBuilder { 2349 builder.tenantKey = tenantKey 2350 builder.tenantKeyFlag = true 2351 return builder 2352 } 2353 2354 func (builder *ListModeratorBuilder) Build() *ListModerator { 2355 req := &ListModerator{} 2356 if builder.userIdTypeFlag { 2357 req.UserIdType = &builder.userIdType 2358 2359 } 2360 if builder.userIdFlag { 2361 req.UserId = &builder.userId 2362 2363 } 2364 if builder.tenantKeyFlag { 2365 req.TenantKey = &builder.tenantKey 2366 2367 } 2368 return req 2369 } 2370 2371 type Mention struct { 2372 Key *string `json:"key,omitempty"` // 被@的用户或机器人的序号。例如,第3个被@到的成员,值为“@_user_3” 2373 Id *string `json:"id,omitempty"` // 被@的用户或者机器人的open_id 2374 IdType *string `json:"id_type,omitempty"` // 被@的用户或机器人 id 类型,目前仅支持 `open_id` ([什么是 Open ID?](/ssl:ttdoc/home/user-identity-introduction/open-id)) 2375 Name *string `json:"name,omitempty"` // 被@的用户或机器人的姓名 2376 TenantKey *string `json:"tenant_key,omitempty"` // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 2377 } 2378 2379 type MentionBuilder struct { 2380 key string // 被@的用户或机器人的序号。例如,第3个被@到的成员,值为“@_user_3” 2381 keyFlag bool 2382 id string // 被@的用户或者机器人的open_id 2383 idFlag bool 2384 idType string // 被@的用户或机器人 id 类型,目前仅支持 `open_id` ([什么是 Open ID?](/ssl:ttdoc/home/user-identity-introduction/open-id)) 2385 idTypeFlag bool 2386 name string // 被@的用户或机器人的姓名 2387 nameFlag bool 2388 tenantKey string // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 2389 tenantKeyFlag bool 2390 } 2391 2392 func NewMentionBuilder() *MentionBuilder { 2393 builder := &MentionBuilder{} 2394 return builder 2395 } 2396 2397 // 被@的用户或机器人的序号。例如,第3个被@到的成员,值为“@_user_3” 2398 // 2399 // 示例值:@_user_1 2400 func (builder *MentionBuilder) Key(key string) *MentionBuilder { 2401 builder.key = key 2402 builder.keyFlag = true 2403 return builder 2404 } 2405 2406 // 被@的用户或者机器人的open_id 2407 // 2408 // 示例值:ou_155184d1e73cbfb8973e5a9e698e74f2 2409 func (builder *MentionBuilder) Id(id string) *MentionBuilder { 2410 builder.id = id 2411 builder.idFlag = true 2412 return builder 2413 } 2414 2415 // 被@的用户或机器人 id 类型,目前仅支持 `open_id` ([什么是 Open ID?](/ssl:ttdoc/home/user-identity-introduction/open-id)) 2416 // 2417 // 示例值:open_id 2418 func (builder *MentionBuilder) IdType(idType string) *MentionBuilder { 2419 builder.idType = idType 2420 builder.idTypeFlag = true 2421 return builder 2422 } 2423 2424 // 被@的用户或机器人的姓名 2425 // 2426 // 示例值:Tom 2427 func (builder *MentionBuilder) Name(name string) *MentionBuilder { 2428 builder.name = name 2429 builder.nameFlag = true 2430 return builder 2431 } 2432 2433 // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 2434 // 2435 // 示例值:736588c9260f175e 2436 func (builder *MentionBuilder) TenantKey(tenantKey string) *MentionBuilder { 2437 builder.tenantKey = tenantKey 2438 builder.tenantKeyFlag = true 2439 return builder 2440 } 2441 2442 func (builder *MentionBuilder) Build() *Mention { 2443 req := &Mention{} 2444 if builder.keyFlag { 2445 req.Key = &builder.key 2446 2447 } 2448 if builder.idFlag { 2449 req.Id = &builder.id 2450 2451 } 2452 if builder.idTypeFlag { 2453 req.IdType = &builder.idType 2454 2455 } 2456 if builder.nameFlag { 2457 req.Name = &builder.name 2458 2459 } 2460 if builder.tenantKeyFlag { 2461 req.TenantKey = &builder.tenantKey 2462 2463 } 2464 return req 2465 } 2466 2467 type MentionEvent struct { 2468 Key *string `json:"key,omitempty"` // mention key 2469 Id *UserId `json:"id,omitempty"` // 用户 ID 2470 Name *string `json:"name,omitempty"` // 用户姓名 2471 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 2472 } 2473 2474 type MentionEventBuilder struct { 2475 key string // mention key 2476 keyFlag bool 2477 id *UserId // 用户 ID 2478 idFlag bool 2479 name string // 用户姓名 2480 nameFlag bool 2481 tenantKey string // tenant key 2482 tenantKeyFlag bool 2483 } 2484 2485 func NewMentionEventBuilder() *MentionEventBuilder { 2486 builder := &MentionEventBuilder{} 2487 return builder 2488 } 2489 2490 // mention key 2491 // 2492 // 示例值:@_user_1 2493 func (builder *MentionEventBuilder) Key(key string) *MentionEventBuilder { 2494 builder.key = key 2495 builder.keyFlag = true 2496 return builder 2497 } 2498 2499 // 用户 ID 2500 // 2501 // 示例值: 2502 func (builder *MentionEventBuilder) Id(id *UserId) *MentionEventBuilder { 2503 builder.id = id 2504 builder.idFlag = true 2505 return builder 2506 } 2507 2508 // 用户姓名 2509 // 2510 // 示例值:Tom 2511 func (builder *MentionEventBuilder) Name(name string) *MentionEventBuilder { 2512 builder.name = name 2513 builder.nameFlag = true 2514 return builder 2515 } 2516 2517 // tenant key 2518 // 2519 // 示例值:736588c9260f175e 2520 func (builder *MentionEventBuilder) TenantKey(tenantKey string) *MentionEventBuilder { 2521 builder.tenantKey = tenantKey 2522 builder.tenantKeyFlag = true 2523 return builder 2524 } 2525 2526 func (builder *MentionEventBuilder) Build() *MentionEvent { 2527 req := &MentionEvent{} 2528 if builder.keyFlag { 2529 req.Key = &builder.key 2530 2531 } 2532 if builder.idFlag { 2533 req.Id = builder.id 2534 } 2535 if builder.nameFlag { 2536 req.Name = &builder.name 2537 2538 } 2539 if builder.tenantKeyFlag { 2540 req.TenantKey = &builder.tenantKey 2541 2542 } 2543 return req 2544 } 2545 2546 type Message struct { 2547 MessageId *string `json:"message_id,omitempty"` // 消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2548 RootId *string `json:"root_id,omitempty"` // 根消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2549 ParentId *string `json:"parent_id,omitempty"` // 父消息的id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2550 MsgType *string `json:"msg_type,omitempty"` // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 2551 CreateTime *string `json:"create_time,omitempty"` // 消息生成的时间戳(毫秒) 2552 UpdateTime *string `json:"update_time,omitempty"` // 消息更新的时间戳(毫秒) 2553 Deleted *bool `json:"deleted,omitempty"` // 消息是否被撤回 2554 Updated *bool `json:"updated,omitempty"` // 消息是否被更新 2555 ChatId *string `json:"chat_id,omitempty"` // 所属的群 2556 Sender *Sender `json:"sender,omitempty"` // 发送者,可以是用户或应用 2557 Body *MessageBody `json:"body,omitempty"` // 消息内容 2558 Mentions []*Mention `json:"mentions,omitempty"` // 被@的用户或机器人的id列表 2559 UpperMessageId *string `json:"upper_message_id,omitempty"` // 合并转发消息中,上一层级的消息id message_id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2560 } 2561 2562 type MessageBuilder struct { 2563 messageId string // 消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2564 messageIdFlag bool 2565 rootId string // 根消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2566 rootIdFlag bool 2567 parentId string // 父消息的id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2568 parentIdFlag bool 2569 msgType string // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 2570 msgTypeFlag bool 2571 createTime string // 消息生成的时间戳(毫秒) 2572 createTimeFlag bool 2573 updateTime string // 消息更新的时间戳(毫秒) 2574 updateTimeFlag bool 2575 deleted bool // 消息是否被撤回 2576 deletedFlag bool 2577 updated bool // 消息是否被更新 2578 updatedFlag bool 2579 chatId string // 所属的群 2580 chatIdFlag bool 2581 sender *Sender // 发送者,可以是用户或应用 2582 senderFlag bool 2583 body *MessageBody // 消息内容 2584 bodyFlag bool 2585 mentions []*Mention // 被@的用户或机器人的id列表 2586 mentionsFlag bool 2587 upperMessageId string // 合并转发消息中,上一层级的消息id message_id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2588 upperMessageIdFlag bool 2589 } 2590 2591 func NewMessageBuilder() *MessageBuilder { 2592 builder := &MessageBuilder{} 2593 return builder 2594 } 2595 2596 // 消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2597 // 2598 // 示例值:om_dc13264520392913993dd051dba21dcf 2599 func (builder *MessageBuilder) MessageId(messageId string) *MessageBuilder { 2600 builder.messageId = messageId 2601 builder.messageIdFlag = true 2602 return builder 2603 } 2604 2605 // 根消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2606 // 2607 // 示例值:om_40eb06e7b84dc71c03e009ad3c754195 2608 func (builder *MessageBuilder) RootId(rootId string) *MessageBuilder { 2609 builder.rootId = rootId 2610 builder.rootIdFlag = true 2611 return builder 2612 } 2613 2614 // 父消息的id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2615 // 2616 // 示例值:om_d4be107c616aed9c1da8ed8068570a9f 2617 func (builder *MessageBuilder) ParentId(parentId string) *MessageBuilder { 2618 builder.parentId = parentId 2619 builder.parentIdFlag = true 2620 return builder 2621 } 2622 2623 // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 2624 // 2625 // 示例值:card 2626 func (builder *MessageBuilder) MsgType(msgType string) *MessageBuilder { 2627 builder.msgType = msgType 2628 builder.msgTypeFlag = true 2629 return builder 2630 } 2631 2632 // 消息生成的时间戳(毫秒) 2633 // 2634 // 示例值:1615380573411 2635 func (builder *MessageBuilder) CreateTime(createTime string) *MessageBuilder { 2636 builder.createTime = createTime 2637 builder.createTimeFlag = true 2638 return builder 2639 } 2640 2641 // 消息更新的时间戳(毫秒) 2642 // 2643 // 示例值:1615380573411 2644 func (builder *MessageBuilder) UpdateTime(updateTime string) *MessageBuilder { 2645 builder.updateTime = updateTime 2646 builder.updateTimeFlag = true 2647 return builder 2648 } 2649 2650 // 消息是否被撤回 2651 // 2652 // 示例值:false 2653 func (builder *MessageBuilder) Deleted(deleted bool) *MessageBuilder { 2654 builder.deleted = deleted 2655 builder.deletedFlag = true 2656 return builder 2657 } 2658 2659 // 消息是否被更新 2660 // 2661 // 示例值:false 2662 func (builder *MessageBuilder) Updated(updated bool) *MessageBuilder { 2663 builder.updated = updated 2664 builder.updatedFlag = true 2665 return builder 2666 } 2667 2668 // 所属的群 2669 // 2670 // 示例值:oc_5ad11d72b830411d72b836c20 2671 func (builder *MessageBuilder) ChatId(chatId string) *MessageBuilder { 2672 builder.chatId = chatId 2673 builder.chatIdFlag = true 2674 return builder 2675 } 2676 2677 // 发送者,可以是用户或应用 2678 // 2679 // 示例值:object 2680 func (builder *MessageBuilder) Sender(sender *Sender) *MessageBuilder { 2681 builder.sender = sender 2682 builder.senderFlag = true 2683 return builder 2684 } 2685 2686 // 消息内容 2687 // 2688 // 示例值:json结构 2689 func (builder *MessageBuilder) Body(body *MessageBody) *MessageBuilder { 2690 builder.body = body 2691 builder.bodyFlag = true 2692 return builder 2693 } 2694 2695 // 被@的用户或机器人的id列表 2696 // 2697 // 示例值: 2698 func (builder *MessageBuilder) Mentions(mentions []*Mention) *MessageBuilder { 2699 builder.mentions = mentions 2700 builder.mentionsFlag = true 2701 return builder 2702 } 2703 2704 // 合并转发消息中,上一层级的消息id message_id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2) 2705 // 2706 // 示例值:om_40eb06e7b84dc71c03e009ad3c754195 2707 func (builder *MessageBuilder) UpperMessageId(upperMessageId string) *MessageBuilder { 2708 builder.upperMessageId = upperMessageId 2709 builder.upperMessageIdFlag = true 2710 return builder 2711 } 2712 2713 func (builder *MessageBuilder) Build() *Message { 2714 req := &Message{} 2715 if builder.messageIdFlag { 2716 req.MessageId = &builder.messageId 2717 2718 } 2719 if builder.rootIdFlag { 2720 req.RootId = &builder.rootId 2721 2722 } 2723 if builder.parentIdFlag { 2724 req.ParentId = &builder.parentId 2725 2726 } 2727 if builder.msgTypeFlag { 2728 req.MsgType = &builder.msgType 2729 2730 } 2731 if builder.createTimeFlag { 2732 req.CreateTime = &builder.createTime 2733 2734 } 2735 if builder.updateTimeFlag { 2736 req.UpdateTime = &builder.updateTime 2737 2738 } 2739 if builder.deletedFlag { 2740 req.Deleted = &builder.deleted 2741 2742 } 2743 if builder.updatedFlag { 2744 req.Updated = &builder.updated 2745 2746 } 2747 if builder.chatIdFlag { 2748 req.ChatId = &builder.chatId 2749 2750 } 2751 if builder.senderFlag { 2752 req.Sender = builder.sender 2753 } 2754 if builder.bodyFlag { 2755 req.Body = builder.body 2756 } 2757 if builder.mentionsFlag { 2758 req.Mentions = builder.mentions 2759 } 2760 if builder.upperMessageIdFlag { 2761 req.UpperMessageId = &builder.upperMessageId 2762 2763 } 2764 return req 2765 } 2766 2767 type MessageReaction struct { 2768 ReactionId *string `json:"reaction_id,omitempty"` // reaction资源ID 2769 Operator *Operator `json:"operator,omitempty"` // 添加reaction的操作人 2770 ActionTime *string `json:"action_time,omitempty"` // reaction动作的的unix timestamp(单位:ms) 2771 ReactionType *Emoji `json:"reaction_type,omitempty"` // reaction资源类型 2772 } 2773 2774 type MessageReactionBuilder struct { 2775 reactionId string // reaction资源ID 2776 reactionIdFlag bool 2777 operator *Operator // 添加reaction的操作人 2778 operatorFlag bool 2779 actionTime string // reaction动作的的unix timestamp(单位:ms) 2780 actionTimeFlag bool 2781 reactionType *Emoji // reaction资源类型 2782 reactionTypeFlag bool 2783 } 2784 2785 func NewMessageReactionBuilder() *MessageReactionBuilder { 2786 builder := &MessageReactionBuilder{} 2787 return builder 2788 } 2789 2790 // reaction资源ID 2791 // 2792 // 示例值:ZCaCIjUBVVWSrm5L-3ZTw*************sNa8dHVplEzzSfJVUVLMLcS_ 2793 func (builder *MessageReactionBuilder) ReactionId(reactionId string) *MessageReactionBuilder { 2794 builder.reactionId = reactionId 2795 builder.reactionIdFlag = true 2796 return builder 2797 } 2798 2799 // 添加reaction的操作人 2800 // 2801 // 示例值: 2802 func (builder *MessageReactionBuilder) Operator(operator *Operator) *MessageReactionBuilder { 2803 builder.operator = operator 2804 builder.operatorFlag = true 2805 return builder 2806 } 2807 2808 // reaction动作的的unix timestamp(单位:ms) 2809 // 2810 // 示例值:1626086391570 2811 func (builder *MessageReactionBuilder) ActionTime(actionTime string) *MessageReactionBuilder { 2812 builder.actionTime = actionTime 2813 builder.actionTimeFlag = true 2814 return builder 2815 } 2816 2817 // reaction资源类型 2818 // 2819 // 示例值: 2820 func (builder *MessageReactionBuilder) ReactionType(reactionType *Emoji) *MessageReactionBuilder { 2821 builder.reactionType = reactionType 2822 builder.reactionTypeFlag = true 2823 return builder 2824 } 2825 2826 func (builder *MessageReactionBuilder) Build() *MessageReaction { 2827 req := &MessageReaction{} 2828 if builder.reactionIdFlag { 2829 req.ReactionId = &builder.reactionId 2830 2831 } 2832 if builder.operatorFlag { 2833 req.Operator = builder.operator 2834 } 2835 if builder.actionTimeFlag { 2836 req.ActionTime = &builder.actionTime 2837 2838 } 2839 if builder.reactionTypeFlag { 2840 req.ReactionType = builder.reactionType 2841 } 2842 return req 2843 } 2844 2845 type MessageResource struct { 2846 } 2847 2848 type MessageBody struct { 2849 Content *string `json:"content,omitempty"` // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 2850 } 2851 2852 type MessageBodyBuilder struct { 2853 content string // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 2854 contentFlag bool 2855 } 2856 2857 func NewMessageBodyBuilder() *MessageBodyBuilder { 2858 builder := &MessageBodyBuilder{} 2859 return builder 2860 } 2861 2862 // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 2863 // 2864 // 示例值:text:测试消息 2865 func (builder *MessageBodyBuilder) Content(content string) *MessageBodyBuilder { 2866 builder.content = content 2867 builder.contentFlag = true 2868 return builder 2869 } 2870 2871 func (builder *MessageBodyBuilder) Build() *MessageBody { 2872 req := &MessageBody{} 2873 if builder.contentFlag { 2874 req.Content = &builder.content 2875 2876 } 2877 return req 2878 } 2879 2880 type ModeratorList struct { 2881 AddedMemberList []*ListEventModerator `json:"added_member_list,omitempty"` // 被添加进可发言名单的用户列表(列表中一定会有owner) 2882 RemovedMemberList []*ListEventModerator `json:"removed_member_list,omitempty"` // 被移除出可发言名单的用户列表 2883 } 2884 2885 type ModeratorListBuilder struct { 2886 addedMemberList []*ListEventModerator // 被添加进可发言名单的用户列表(列表中一定会有owner) 2887 addedMemberListFlag bool 2888 removedMemberList []*ListEventModerator // 被移除出可发言名单的用户列表 2889 removedMemberListFlag bool 2890 } 2891 2892 func NewModeratorListBuilder() *ModeratorListBuilder { 2893 builder := &ModeratorListBuilder{} 2894 return builder 2895 } 2896 2897 // 被添加进可发言名单的用户列表(列表中一定会有owner) 2898 // 2899 // 示例值: 2900 func (builder *ModeratorListBuilder) AddedMemberList(addedMemberList []*ListEventModerator) *ModeratorListBuilder { 2901 builder.addedMemberList = addedMemberList 2902 builder.addedMemberListFlag = true 2903 return builder 2904 } 2905 2906 // 被移除出可发言名单的用户列表 2907 // 2908 // 示例值: 2909 func (builder *ModeratorListBuilder) RemovedMemberList(removedMemberList []*ListEventModerator) *ModeratorListBuilder { 2910 builder.removedMemberList = removedMemberList 2911 builder.removedMemberListFlag = true 2912 return builder 2913 } 2914 2915 func (builder *ModeratorListBuilder) Build() *ModeratorList { 2916 req := &ModeratorList{} 2917 if builder.addedMemberListFlag { 2918 req.AddedMemberList = builder.addedMemberList 2919 } 2920 if builder.removedMemberListFlag { 2921 req.RemovedMemberList = builder.removedMemberList 2922 } 2923 return req 2924 } 2925 2926 type MsgProcessData struct { 2927 PDate *string `json:"p_date,omitempty"` // 分区日期 2928 DepartmentId *string `json:"department_id,omitempty"` // 部门id 2929 DepartmentPath *string `json:"department_path,omitempty"` // 部门路径 2930 AvgImpMsgReadRate12h *float64 `json:"avg_imp_msg_read_rate_12h,omitempty"` // 人均重要消息 12 小时阅读率 2931 MsgReadRate12h *float64 `json:"msg_read_rate_12h,omitempty"` // 人均 12 小时阅读率 2932 AvgReceiveMsgCnt *float64 `json:"avg_receive_msg_cnt,omitempty"` // 人均接收消息数 2933 AvgReadMsgCnt *float64 `json:"avg_read_msg_cnt,omitempty"` // 人均阅读消息数 2934 AvgImpReadMsgCnt *float64 `json:"avg_imp_read_msg_cnt,omitempty"` // 人均重要消息阅读数 2935 AvgImpReceiveMsgCnt *float64 `json:"avg_imp_receive_msg_cnt,omitempty"` // 人均重要消息接收数 2936 HighLoadRate *float64 `json:"high_load_rate,omitempty"` // 信息高负载员工占比 2937 BigGroupMsgRate *float64 `json:"big_group_msg_rate,omitempty"` // 大群(100人以上)消息占比 2938 BigGroupTopicMsgRate *float64 `json:"big_group_topic_msg_rate,omitempty"` // 大群消息中话题消息占比 2939 AvgReceiveBotMsgCnt *float64 `json:"avg_receive_bot_msg_cnt,omitempty"` // 人均接收 bot 消息数 2940 AvgBotImpMsgReadRate12h *float64 `json:"avg_bot_imp_msg_read_rate_12h,omitempty"` // 重要 bot 消息 12 小时阅读率 2941 ReceiveBotMsgRate *float64 `json:"receive_bot_msg_rate,omitempty"` // 接收 bot 消息占比 2942 UseChatBoxRate *float64 `json:"use_chat_box_rate,omitempty"` // 会话盒子使用率 2943 ReceiveMuteMsgRate *float64 `json:"receive_mute_msg_rate,omitempty"` // 接收消息中 mute 消息占比 2944 ReadMuteMsgRate *float64 `json:"read_mute_msg_rate,omitempty"` // 阅读消息中 mute 消息占比 2945 AvgReceiveImpMsgChatCnt *float64 `json:"avg_receive_imp_msg_chat_cnt,omitempty"` // 人均有重要消息的会话数 2946 } 2947 2948 type MsgProcessDataBuilder struct { 2949 pDate string // 分区日期 2950 pDateFlag bool 2951 departmentId string // 部门id 2952 departmentIdFlag bool 2953 departmentPath string // 部门路径 2954 departmentPathFlag bool 2955 avgImpMsgReadRate12h float64 // 人均重要消息 12 小时阅读率 2956 avgImpMsgReadRate12hFlag bool 2957 msgReadRate12h float64 // 人均 12 小时阅读率 2958 msgReadRate12hFlag bool 2959 avgReceiveMsgCnt float64 // 人均接收消息数 2960 avgReceiveMsgCntFlag bool 2961 avgReadMsgCnt float64 // 人均阅读消息数 2962 avgReadMsgCntFlag bool 2963 avgImpReadMsgCnt float64 // 人均重要消息阅读数 2964 avgImpReadMsgCntFlag bool 2965 avgImpReceiveMsgCnt float64 // 人均重要消息接收数 2966 avgImpReceiveMsgCntFlag bool 2967 highLoadRate float64 // 信息高负载员工占比 2968 highLoadRateFlag bool 2969 bigGroupMsgRate float64 // 大群(100人以上)消息占比 2970 bigGroupMsgRateFlag bool 2971 bigGroupTopicMsgRate float64 // 大群消息中话题消息占比 2972 bigGroupTopicMsgRateFlag bool 2973 avgReceiveBotMsgCnt float64 // 人均接收 bot 消息数 2974 avgReceiveBotMsgCntFlag bool 2975 avgBotImpMsgReadRate12h float64 // 重要 bot 消息 12 小时阅读率 2976 avgBotImpMsgReadRate12hFlag bool 2977 receiveBotMsgRate float64 // 接收 bot 消息占比 2978 receiveBotMsgRateFlag bool 2979 useChatBoxRate float64 // 会话盒子使用率 2980 useChatBoxRateFlag bool 2981 receiveMuteMsgRate float64 // 接收消息中 mute 消息占比 2982 receiveMuteMsgRateFlag bool 2983 readMuteMsgRate float64 // 阅读消息中 mute 消息占比 2984 readMuteMsgRateFlag bool 2985 avgReceiveImpMsgChatCnt float64 // 人均有重要消息的会话数 2986 avgReceiveImpMsgChatCntFlag bool 2987 } 2988 2989 func NewMsgProcessDataBuilder() *MsgProcessDataBuilder { 2990 builder := &MsgProcessDataBuilder{} 2991 return builder 2992 } 2993 2994 // 分区日期 2995 // 2996 // 示例值:2022-02-02 2997 func (builder *MsgProcessDataBuilder) PDate(pDate string) *MsgProcessDataBuilder { 2998 builder.pDate = pDate 2999 builder.pDateFlag = true 3000 return builder 3001 } 3002 3003 // 部门id 3004 // 3005 // 示例值:123456 3006 func (builder *MsgProcessDataBuilder) DepartmentId(departmentId string) *MsgProcessDataBuilder { 3007 builder.departmentId = departmentId 3008 builder.departmentIdFlag = true 3009 return builder 3010 } 3011 3012 // 部门路径 3013 // 3014 // 示例值:test/subtest 3015 func (builder *MsgProcessDataBuilder) DepartmentPath(departmentPath string) *MsgProcessDataBuilder { 3016 builder.departmentPath = departmentPath 3017 builder.departmentPathFlag = true 3018 return builder 3019 } 3020 3021 // 人均重要消息 12 小时阅读率 3022 // 3023 // 示例值:0.50 3024 func (builder *MsgProcessDataBuilder) AvgImpMsgReadRate12h(avgImpMsgReadRate12h float64) *MsgProcessDataBuilder { 3025 builder.avgImpMsgReadRate12h = avgImpMsgReadRate12h 3026 builder.avgImpMsgReadRate12hFlag = true 3027 return builder 3028 } 3029 3030 // 人均 12 小时阅读率 3031 // 3032 // 示例值:0.50 3033 func (builder *MsgProcessDataBuilder) MsgReadRate12h(msgReadRate12h float64) *MsgProcessDataBuilder { 3034 builder.msgReadRate12h = msgReadRate12h 3035 builder.msgReadRate12hFlag = true 3036 return builder 3037 } 3038 3039 // 人均接收消息数 3040 // 3041 // 示例值:50 3042 func (builder *MsgProcessDataBuilder) AvgReceiveMsgCnt(avgReceiveMsgCnt float64) *MsgProcessDataBuilder { 3043 builder.avgReceiveMsgCnt = avgReceiveMsgCnt 3044 builder.avgReceiveMsgCntFlag = true 3045 return builder 3046 } 3047 3048 // 人均阅读消息数 3049 // 3050 // 示例值:50 3051 func (builder *MsgProcessDataBuilder) AvgReadMsgCnt(avgReadMsgCnt float64) *MsgProcessDataBuilder { 3052 builder.avgReadMsgCnt = avgReadMsgCnt 3053 builder.avgReadMsgCntFlag = true 3054 return builder 3055 } 3056 3057 // 人均重要消息阅读数 3058 // 3059 // 示例值:50 3060 func (builder *MsgProcessDataBuilder) AvgImpReadMsgCnt(avgImpReadMsgCnt float64) *MsgProcessDataBuilder { 3061 builder.avgImpReadMsgCnt = avgImpReadMsgCnt 3062 builder.avgImpReadMsgCntFlag = true 3063 return builder 3064 } 3065 3066 // 人均重要消息接收数 3067 // 3068 // 示例值:50 3069 func (builder *MsgProcessDataBuilder) AvgImpReceiveMsgCnt(avgImpReceiveMsgCnt float64) *MsgProcessDataBuilder { 3070 builder.avgImpReceiveMsgCnt = avgImpReceiveMsgCnt 3071 builder.avgImpReceiveMsgCntFlag = true 3072 return builder 3073 } 3074 3075 // 信息高负载员工占比 3076 // 3077 // 示例值:0.50 3078 func (builder *MsgProcessDataBuilder) HighLoadRate(highLoadRate float64) *MsgProcessDataBuilder { 3079 builder.highLoadRate = highLoadRate 3080 builder.highLoadRateFlag = true 3081 return builder 3082 } 3083 3084 // 大群(100人以上)消息占比 3085 // 3086 // 示例值:0.50 3087 func (builder *MsgProcessDataBuilder) BigGroupMsgRate(bigGroupMsgRate float64) *MsgProcessDataBuilder { 3088 builder.bigGroupMsgRate = bigGroupMsgRate 3089 builder.bigGroupMsgRateFlag = true 3090 return builder 3091 } 3092 3093 // 大群消息中话题消息占比 3094 // 3095 // 示例值:0.50 3096 func (builder *MsgProcessDataBuilder) BigGroupTopicMsgRate(bigGroupTopicMsgRate float64) *MsgProcessDataBuilder { 3097 builder.bigGroupTopicMsgRate = bigGroupTopicMsgRate 3098 builder.bigGroupTopicMsgRateFlag = true 3099 return builder 3100 } 3101 3102 // 人均接收 bot 消息数 3103 // 3104 // 示例值:0.50 3105 func (builder *MsgProcessDataBuilder) AvgReceiveBotMsgCnt(avgReceiveBotMsgCnt float64) *MsgProcessDataBuilder { 3106 builder.avgReceiveBotMsgCnt = avgReceiveBotMsgCnt 3107 builder.avgReceiveBotMsgCntFlag = true 3108 return builder 3109 } 3110 3111 // 重要 bot 消息 12 小时阅读率 3112 // 3113 // 示例值:0.50 3114 func (builder *MsgProcessDataBuilder) AvgBotImpMsgReadRate12h(avgBotImpMsgReadRate12h float64) *MsgProcessDataBuilder { 3115 builder.avgBotImpMsgReadRate12h = avgBotImpMsgReadRate12h 3116 builder.avgBotImpMsgReadRate12hFlag = true 3117 return builder 3118 } 3119 3120 // 接收 bot 消息占比 3121 // 3122 // 示例值:0.50 3123 func (builder *MsgProcessDataBuilder) ReceiveBotMsgRate(receiveBotMsgRate float64) *MsgProcessDataBuilder { 3124 builder.receiveBotMsgRate = receiveBotMsgRate 3125 builder.receiveBotMsgRateFlag = true 3126 return builder 3127 } 3128 3129 // 会话盒子使用率 3130 // 3131 // 示例值:0.50 3132 func (builder *MsgProcessDataBuilder) UseChatBoxRate(useChatBoxRate float64) *MsgProcessDataBuilder { 3133 builder.useChatBoxRate = useChatBoxRate 3134 builder.useChatBoxRateFlag = true 3135 return builder 3136 } 3137 3138 // 接收消息中 mute 消息占比 3139 // 3140 // 示例值:0.50 3141 func (builder *MsgProcessDataBuilder) ReceiveMuteMsgRate(receiveMuteMsgRate float64) *MsgProcessDataBuilder { 3142 builder.receiveMuteMsgRate = receiveMuteMsgRate 3143 builder.receiveMuteMsgRateFlag = true 3144 return builder 3145 } 3146 3147 // 阅读消息中 mute 消息占比 3148 // 3149 // 示例值:0.50 3150 func (builder *MsgProcessDataBuilder) ReadMuteMsgRate(readMuteMsgRate float64) *MsgProcessDataBuilder { 3151 builder.readMuteMsgRate = readMuteMsgRate 3152 builder.readMuteMsgRateFlag = true 3153 return builder 3154 } 3155 3156 // 人均有重要消息的会话数 3157 // 3158 // 示例值:50 3159 func (builder *MsgProcessDataBuilder) AvgReceiveImpMsgChatCnt(avgReceiveImpMsgChatCnt float64) *MsgProcessDataBuilder { 3160 builder.avgReceiveImpMsgChatCnt = avgReceiveImpMsgChatCnt 3161 builder.avgReceiveImpMsgChatCntFlag = true 3162 return builder 3163 } 3164 3165 func (builder *MsgProcessDataBuilder) Build() *MsgProcessData { 3166 req := &MsgProcessData{} 3167 if builder.pDateFlag { 3168 req.PDate = &builder.pDate 3169 3170 } 3171 if builder.departmentIdFlag { 3172 req.DepartmentId = &builder.departmentId 3173 3174 } 3175 if builder.departmentPathFlag { 3176 req.DepartmentPath = &builder.departmentPath 3177 3178 } 3179 if builder.avgImpMsgReadRate12hFlag { 3180 req.AvgImpMsgReadRate12h = &builder.avgImpMsgReadRate12h 3181 3182 } 3183 if builder.msgReadRate12hFlag { 3184 req.MsgReadRate12h = &builder.msgReadRate12h 3185 3186 } 3187 if builder.avgReceiveMsgCntFlag { 3188 req.AvgReceiveMsgCnt = &builder.avgReceiveMsgCnt 3189 3190 } 3191 if builder.avgReadMsgCntFlag { 3192 req.AvgReadMsgCnt = &builder.avgReadMsgCnt 3193 3194 } 3195 if builder.avgImpReadMsgCntFlag { 3196 req.AvgImpReadMsgCnt = &builder.avgImpReadMsgCnt 3197 3198 } 3199 if builder.avgImpReceiveMsgCntFlag { 3200 req.AvgImpReceiveMsgCnt = &builder.avgImpReceiveMsgCnt 3201 3202 } 3203 if builder.highLoadRateFlag { 3204 req.HighLoadRate = &builder.highLoadRate 3205 3206 } 3207 if builder.bigGroupMsgRateFlag { 3208 req.BigGroupMsgRate = &builder.bigGroupMsgRate 3209 3210 } 3211 if builder.bigGroupTopicMsgRateFlag { 3212 req.BigGroupTopicMsgRate = &builder.bigGroupTopicMsgRate 3213 3214 } 3215 if builder.avgReceiveBotMsgCntFlag { 3216 req.AvgReceiveBotMsgCnt = &builder.avgReceiveBotMsgCnt 3217 3218 } 3219 if builder.avgBotImpMsgReadRate12hFlag { 3220 req.AvgBotImpMsgReadRate12h = &builder.avgBotImpMsgReadRate12h 3221 3222 } 3223 if builder.receiveBotMsgRateFlag { 3224 req.ReceiveBotMsgRate = &builder.receiveBotMsgRate 3225 3226 } 3227 if builder.useChatBoxRateFlag { 3228 req.UseChatBoxRate = &builder.useChatBoxRate 3229 3230 } 3231 if builder.receiveMuteMsgRateFlag { 3232 req.ReceiveMuteMsgRate = &builder.receiveMuteMsgRate 3233 3234 } 3235 if builder.readMuteMsgRateFlag { 3236 req.ReadMuteMsgRate = &builder.readMuteMsgRate 3237 3238 } 3239 if builder.avgReceiveImpMsgChatCntFlag { 3240 req.AvgReceiveImpMsgChatCnt = &builder.avgReceiveImpMsgChatCnt 3241 3242 } 3243 return req 3244 } 3245 3246 type Operator struct { 3247 OperatorId *string `json:"operator_id,omitempty"` // 操作人ID 3248 OperatorType *string `json:"operator_type,omitempty"` // 操作人身份,用户或应用 3249 } 3250 3251 type OperatorBuilder struct { 3252 operatorId string // 操作人ID 3253 operatorIdFlag bool 3254 operatorType string // 操作人身份,用户或应用 3255 operatorTypeFlag bool 3256 } 3257 3258 func NewOperatorBuilder() *OperatorBuilder { 3259 builder := &OperatorBuilder{} 3260 return builder 3261 } 3262 3263 // 操作人ID 3264 // 3265 // 示例值:ou_ff0b7ba35fb********67dfc8b885136 3266 func (builder *OperatorBuilder) OperatorId(operatorId string) *OperatorBuilder { 3267 builder.operatorId = operatorId 3268 builder.operatorIdFlag = true 3269 return builder 3270 } 3271 3272 // 操作人身份,用户或应用 3273 // 3274 // 示例值:app/user 3275 func (builder *OperatorBuilder) OperatorType(operatorType string) *OperatorBuilder { 3276 builder.operatorType = operatorType 3277 builder.operatorTypeFlag = true 3278 return builder 3279 } 3280 3281 func (builder *OperatorBuilder) Build() *Operator { 3282 req := &Operator{} 3283 if builder.operatorIdFlag { 3284 req.OperatorId = &builder.operatorId 3285 3286 } 3287 if builder.operatorTypeFlag { 3288 req.OperatorType = &builder.operatorType 3289 3290 } 3291 return req 3292 } 3293 3294 type Pin struct { 3295 MessageId *string `json:"message_id,omitempty"` // Pin的消息ID 3296 ChatId *string `json:"chat_id,omitempty"` // Pin消息所在的群聊ID 3297 OperatorId *string `json:"operator_id,omitempty"` // Pin的操作人ID 3298 OperatorIdType *string `json:"operator_id_type,omitempty"` // Pin的操作人ID类型 3299 CreateTime *string `json:"create_time,omitempty"` // Pin的创建时间(毫秒级时间戳) 3300 } 3301 3302 type PinBuilder struct { 3303 messageId string // Pin的消息ID 3304 messageIdFlag bool 3305 chatId string // Pin消息所在的群聊ID 3306 chatIdFlag bool 3307 operatorId string // Pin的操作人ID 3308 operatorIdFlag bool 3309 operatorIdType string // Pin的操作人ID类型 3310 operatorIdTypeFlag bool 3311 createTime string // Pin的创建时间(毫秒级时间戳) 3312 createTimeFlag bool 3313 } 3314 3315 func NewPinBuilder() *PinBuilder { 3316 builder := &PinBuilder{} 3317 return builder 3318 } 3319 3320 // Pin的消息ID 3321 // 3322 // 示例值:om_dc13264520392913993dd051dba21dcf 3323 func (builder *PinBuilder) MessageId(messageId string) *PinBuilder { 3324 builder.messageId = messageId 3325 builder.messageIdFlag = true 3326 return builder 3327 } 3328 3329 // Pin消息所在的群聊ID 3330 // 3331 // 示例值:oc_a0553eda9014c201e6969b478895c230 3332 func (builder *PinBuilder) ChatId(chatId string) *PinBuilder { 3333 builder.chatId = chatId 3334 builder.chatIdFlag = true 3335 return builder 3336 } 3337 3338 // Pin的操作人ID 3339 // 3340 // 示例值:ou_7d8a6e6df7621556ce0d21922b676706ccs 3341 func (builder *PinBuilder) OperatorId(operatorId string) *PinBuilder { 3342 builder.operatorId = operatorId 3343 builder.operatorIdFlag = true 3344 return builder 3345 } 3346 3347 // Pin的操作人ID类型 3348 // 3349 // 示例值:open_id 3350 func (builder *PinBuilder) OperatorIdType(operatorIdType string) *PinBuilder { 3351 builder.operatorIdType = operatorIdType 3352 builder.operatorIdTypeFlag = true 3353 return builder 3354 } 3355 3356 // Pin的创建时间(毫秒级时间戳) 3357 // 3358 // 示例值:1615380573211 3359 func (builder *PinBuilder) CreateTime(createTime string) *PinBuilder { 3360 builder.createTime = createTime 3361 builder.createTimeFlag = true 3362 return builder 3363 } 3364 3365 func (builder *PinBuilder) Build() *Pin { 3366 req := &Pin{} 3367 if builder.messageIdFlag { 3368 req.MessageId = &builder.messageId 3369 3370 } 3371 if builder.chatIdFlag { 3372 req.ChatId = &builder.chatId 3373 3374 } 3375 if builder.operatorIdFlag { 3376 req.OperatorId = &builder.operatorId 3377 3378 } 3379 if builder.operatorIdTypeFlag { 3380 req.OperatorIdType = &builder.operatorIdType 3381 3382 } 3383 if builder.createTimeFlag { 3384 req.CreateTime = &builder.createTime 3385 3386 } 3387 return req 3388 } 3389 3390 type PinedMessage struct { 3391 Pin *Pin `json:"pin,omitempty"` // Pin的操作信息 3392 Message *Message `json:"message,omitempty"` // 被Pin的消息实体 3393 } 3394 3395 type PinedMessageBuilder struct { 3396 pin *Pin // Pin的操作信息 3397 pinFlag bool 3398 message *Message // 被Pin的消息实体 3399 messageFlag bool 3400 } 3401 3402 func NewPinedMessageBuilder() *PinedMessageBuilder { 3403 builder := &PinedMessageBuilder{} 3404 return builder 3405 } 3406 3407 // Pin的操作信息 3408 // 3409 // 示例值: 3410 func (builder *PinedMessageBuilder) Pin(pin *Pin) *PinedMessageBuilder { 3411 builder.pin = pin 3412 builder.pinFlag = true 3413 return builder 3414 } 3415 3416 // 被Pin的消息实体 3417 // 3418 // 示例值: 3419 func (builder *PinedMessageBuilder) Message(message *Message) *PinedMessageBuilder { 3420 builder.message = message 3421 builder.messageFlag = true 3422 return builder 3423 } 3424 3425 func (builder *PinedMessageBuilder) Build() *PinedMessage { 3426 req := &PinedMessage{} 3427 if builder.pinFlag { 3428 req.Pin = builder.pin 3429 } 3430 if builder.messageFlag { 3431 req.Message = builder.message 3432 } 3433 return req 3434 } 3435 3436 type ReadUser struct { 3437 UserIdType *string `json:"user_id_type,omitempty"` // 用户id类型 3438 UserId *string `json:"user_id,omitempty"` // 用户id 3439 Timestamp *string `json:"timestamp,omitempty"` // 阅读时间 3440 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 3441 } 3442 3443 type ReadUserBuilder struct { 3444 userIdType string // 用户id类型 3445 userIdTypeFlag bool 3446 userId string // 用户id 3447 userIdFlag bool 3448 timestamp string // 阅读时间 3449 timestampFlag bool 3450 tenantKey string // tenant key 3451 tenantKeyFlag bool 3452 } 3453 3454 func NewReadUserBuilder() *ReadUserBuilder { 3455 builder := &ReadUserBuilder{} 3456 return builder 3457 } 3458 3459 // 用户id类型 3460 // 3461 // 示例值:open_id 3462 func (builder *ReadUserBuilder) UserIdType(userIdType string) *ReadUserBuilder { 3463 builder.userIdType = userIdType 3464 builder.userIdTypeFlag = true 3465 return builder 3466 } 3467 3468 // 用户id 3469 // 3470 // 示例值:ou_9b851f7b51a9d58d109982337c46f3de 3471 func (builder *ReadUserBuilder) UserId(userId string) *ReadUserBuilder { 3472 builder.userId = userId 3473 builder.userIdFlag = true 3474 return builder 3475 } 3476 3477 // 阅读时间 3478 // 3479 // 示例值:1609484183000 3480 func (builder *ReadUserBuilder) Timestamp(timestamp string) *ReadUserBuilder { 3481 builder.timestamp = timestamp 3482 builder.timestampFlag = true 3483 return builder 3484 } 3485 3486 // tenant key 3487 // 3488 // 示例值:736588c9260f175e 3489 func (builder *ReadUserBuilder) TenantKey(tenantKey string) *ReadUserBuilder { 3490 builder.tenantKey = tenantKey 3491 builder.tenantKeyFlag = true 3492 return builder 3493 } 3494 3495 func (builder *ReadUserBuilder) Build() *ReadUser { 3496 req := &ReadUser{} 3497 if builder.userIdTypeFlag { 3498 req.UserIdType = &builder.userIdType 3499 3500 } 3501 if builder.userIdFlag { 3502 req.UserId = &builder.userId 3503 3504 } 3505 if builder.timestampFlag { 3506 req.Timestamp = &builder.timestamp 3507 3508 } 3509 if builder.tenantKeyFlag { 3510 req.TenantKey = &builder.tenantKey 3511 3512 } 3513 return req 3514 } 3515 3516 type Sender struct { 3517 Id *string `json:"id,omitempty"` // 该字段标识发送者的id 3518 IdType *string `json:"id_type,omitempty"` // 该字段标识发送者的id类型 3519 SenderType *string `json:"sender_type,omitempty"` // 该字段标识发送者的类型 3520 TenantKey *string `json:"tenant_key,omitempty"` // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 3521 } 3522 3523 type SenderBuilder struct { 3524 id string // 该字段标识发送者的id 3525 idFlag bool 3526 idType string // 该字段标识发送者的id类型 3527 idTypeFlag bool 3528 senderType string // 该字段标识发送者的类型 3529 senderTypeFlag bool 3530 tenantKey string // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 3531 tenantKeyFlag bool 3532 } 3533 3534 func NewSenderBuilder() *SenderBuilder { 3535 builder := &SenderBuilder{} 3536 return builder 3537 } 3538 3539 // 该字段标识发送者的id 3540 // 3541 // 示例值:cli_9f427eec54ae901b 3542 func (builder *SenderBuilder) Id(id string) *SenderBuilder { 3543 builder.id = id 3544 builder.idFlag = true 3545 return builder 3546 } 3547 3548 // 该字段标识发送者的id类型 3549 // 3550 // 示例值:app_id 3551 func (builder *SenderBuilder) IdType(idType string) *SenderBuilder { 3552 builder.idType = idType 3553 builder.idTypeFlag = true 3554 return builder 3555 } 3556 3557 // 该字段标识发送者的类型 3558 // 3559 // 示例值:app 3560 func (builder *SenderBuilder) SenderType(senderType string) *SenderBuilder { 3561 builder.senderType = senderType 3562 builder.senderTypeFlag = true 3563 return builder 3564 } 3565 3566 // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 3567 // 3568 // 示例值:736588c9260f175e 3569 func (builder *SenderBuilder) TenantKey(tenantKey string) *SenderBuilder { 3570 builder.tenantKey = tenantKey 3571 builder.tenantKeyFlag = true 3572 return builder 3573 } 3574 3575 func (builder *SenderBuilder) Build() *Sender { 3576 req := &Sender{} 3577 if builder.idFlag { 3578 req.Id = &builder.id 3579 3580 } 3581 if builder.idTypeFlag { 3582 req.IdType = &builder.idType 3583 3584 } 3585 if builder.senderTypeFlag { 3586 req.SenderType = &builder.senderType 3587 3588 } 3589 if builder.tenantKeyFlag { 3590 req.TenantKey = &builder.tenantKey 3591 3592 } 3593 return req 3594 } 3595 3596 type SpecialFocus struct { 3597 Id *string `json:"id,omitempty"` // 用户id 3598 IdType *string `json:"id_type,omitempty"` // id open_id/user_id/union_id/app_id 3599 } 3600 3601 type SpecialFocusBuilder struct { 3602 id string // 用户id 3603 idFlag bool 3604 idType string // id open_id/user_id/union_id/app_id 3605 idTypeFlag bool 3606 } 3607 3608 func NewSpecialFocusBuilder() *SpecialFocusBuilder { 3609 builder := &SpecialFocusBuilder{} 3610 return builder 3611 } 3612 3613 // 用户id 3614 // 3615 // 示例值:ou_155184d1e73cbfb8973e5a9e698e74f2 3616 func (builder *SpecialFocusBuilder) Id(id string) *SpecialFocusBuilder { 3617 builder.id = id 3618 builder.idFlag = true 3619 return builder 3620 } 3621 3622 // id open_id/user_id/union_id/app_id 3623 // 3624 // 示例值: 3625 func (builder *SpecialFocusBuilder) IdType(idType string) *SpecialFocusBuilder { 3626 builder.idType = idType 3627 builder.idTypeFlag = true 3628 return builder 3629 } 3630 3631 func (builder *SpecialFocusBuilder) Build() *SpecialFocus { 3632 req := &SpecialFocus{} 3633 if builder.idFlag { 3634 req.Id = &builder.id 3635 3636 } 3637 if builder.idTypeFlag { 3638 req.IdType = &builder.idType 3639 3640 } 3641 return req 3642 } 3643 3644 type SpecialFocusUnread struct { 3645 Id *string `json:"id,omitempty"` // 用户id 3646 IdType *string `json:"id_type,omitempty"` // 进群成员id类型 open_id/user_id/union_id/app_id 3647 UnreadCount *string `json:"unread_count,omitempty"` // 未读数 3648 } 3649 3650 type SpecialFocusUnreadBuilder struct { 3651 id string // 用户id 3652 idFlag bool 3653 idType string // 进群成员id类型 open_id/user_id/union_id/app_id 3654 idTypeFlag bool 3655 unreadCount string // 未读数 3656 unreadCountFlag bool 3657 } 3658 3659 func NewSpecialFocusUnreadBuilder() *SpecialFocusUnreadBuilder { 3660 builder := &SpecialFocusUnreadBuilder{} 3661 return builder 3662 } 3663 3664 // 用户id 3665 // 3666 // 示例值: 3667 func (builder *SpecialFocusUnreadBuilder) Id(id string) *SpecialFocusUnreadBuilder { 3668 builder.id = id 3669 builder.idFlag = true 3670 return builder 3671 } 3672 3673 // 进群成员id类型 open_id/user_id/union_id/app_id 3674 // 3675 // 示例值: 3676 func (builder *SpecialFocusUnreadBuilder) IdType(idType string) *SpecialFocusUnreadBuilder { 3677 builder.idType = idType 3678 builder.idTypeFlag = true 3679 return builder 3680 } 3681 3682 // 未读数 3683 // 3684 // 示例值: 3685 func (builder *SpecialFocusUnreadBuilder) UnreadCount(unreadCount string) *SpecialFocusUnreadBuilder { 3686 builder.unreadCount = unreadCount 3687 builder.unreadCountFlag = true 3688 return builder 3689 } 3690 3691 func (builder *SpecialFocusUnreadBuilder) Build() *SpecialFocusUnread { 3692 req := &SpecialFocusUnread{} 3693 if builder.idFlag { 3694 req.Id = &builder.id 3695 3696 } 3697 if builder.idTypeFlag { 3698 req.IdType = &builder.idType 3699 3700 } 3701 if builder.unreadCountFlag { 3702 req.UnreadCount = &builder.unreadCount 3703 3704 } 3705 return req 3706 } 3707 3708 type Toolkit struct { 3709 ToolkitId *string `json:"toolkit_id,omitempty"` // 快捷组件ID 3710 ImageKey *string `json:"image_key,omitempty"` // 快捷组件小图标 ;;上传message类型的图片[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create) 3711 ToolkitName *string `json:"toolkit_name,omitempty"` // 快捷组件名称 3712 I18nName *I18nNames `json:"i18n_name,omitempty"` // 国际化名称 3713 ToolkitType *string `json:"toolkit_type,omitempty"` // 快捷组件类型 3714 RedirectLink *ToolkitRedirectLink `json:"redirect_link,omitempty"` // 跳转类型快捷组件 3715 Callback *ToolkitCallback `json:"callback,omitempty"` // 回调类型快捷组件 3716 } 3717 3718 type ToolkitBuilder struct { 3719 toolkitId string // 快捷组件ID 3720 toolkitIdFlag bool 3721 imageKey string // 快捷组件小图标 ;;上传message类型的图片[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create) 3722 imageKeyFlag bool 3723 toolkitName string // 快捷组件名称 3724 toolkitNameFlag bool 3725 i18nName *I18nNames // 国际化名称 3726 i18nNameFlag bool 3727 toolkitType string // 快捷组件类型 3728 toolkitTypeFlag bool 3729 redirectLink *ToolkitRedirectLink // 跳转类型快捷组件 3730 redirectLinkFlag bool 3731 callback *ToolkitCallback // 回调类型快捷组件 3732 callbackFlag bool 3733 } 3734 3735 func NewToolkitBuilder() *ToolkitBuilder { 3736 builder := &ToolkitBuilder{} 3737 return builder 3738 } 3739 3740 // 快捷组件ID 3741 // 3742 // 示例值:7101214603622940671 3743 func (builder *ToolkitBuilder) ToolkitId(toolkitId string) *ToolkitBuilder { 3744 builder.toolkitId = toolkitId 3745 builder.toolkitIdFlag = true 3746 return builder 3747 } 3748 3749 // 快捷组件小图标 ;;上传message类型的图片[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create) 3750 // 3751 // 示例值:img_v2_2995edd9-a22c-44ca-9559-71bbc1e661bg 3752 func (builder *ToolkitBuilder) ImageKey(imageKey string) *ToolkitBuilder { 3753 builder.imageKey = imageKey 3754 builder.imageKeyFlag = true 3755 return builder 3756 } 3757 3758 // 快捷组件名称 3759 // 3760 // 示例值:群组 3761 func (builder *ToolkitBuilder) ToolkitName(toolkitName string) *ToolkitBuilder { 3762 builder.toolkitName = toolkitName 3763 builder.toolkitNameFlag = true 3764 return builder 3765 } 3766 3767 // 国际化名称 3768 // 3769 // 示例值: 3770 func (builder *ToolkitBuilder) I18nName(i18nName *I18nNames) *ToolkitBuilder { 3771 builder.i18nName = i18nName 3772 builder.i18nNameFlag = true 3773 return builder 3774 } 3775 3776 // 快捷组件类型 3777 // 3778 // 示例值:redirect_link 3779 func (builder *ToolkitBuilder) ToolkitType(toolkitType string) *ToolkitBuilder { 3780 builder.toolkitType = toolkitType 3781 builder.toolkitTypeFlag = true 3782 return builder 3783 } 3784 3785 // 跳转类型快捷组件 3786 // 3787 // 示例值: 3788 func (builder *ToolkitBuilder) RedirectLink(redirectLink *ToolkitRedirectLink) *ToolkitBuilder { 3789 builder.redirectLink = redirectLink 3790 builder.redirectLinkFlag = true 3791 return builder 3792 } 3793 3794 // 回调类型快捷组件 3795 // 3796 // 示例值: 3797 func (builder *ToolkitBuilder) Callback(callback *ToolkitCallback) *ToolkitBuilder { 3798 builder.callback = callback 3799 builder.callbackFlag = true 3800 return builder 3801 } 3802 3803 func (builder *ToolkitBuilder) Build() *Toolkit { 3804 req := &Toolkit{} 3805 if builder.toolkitIdFlag { 3806 req.ToolkitId = &builder.toolkitId 3807 3808 } 3809 if builder.imageKeyFlag { 3810 req.ImageKey = &builder.imageKey 3811 3812 } 3813 if builder.toolkitNameFlag { 3814 req.ToolkitName = &builder.toolkitName 3815 3816 } 3817 if builder.i18nNameFlag { 3818 req.I18nName = builder.i18nName 3819 } 3820 if builder.toolkitTypeFlag { 3821 req.ToolkitType = &builder.toolkitType 3822 3823 } 3824 if builder.redirectLinkFlag { 3825 req.RedirectLink = builder.redirectLink 3826 } 3827 if builder.callbackFlag { 3828 req.Callback = builder.callback 3829 } 3830 return req 3831 } 3832 3833 type ToolkitCallback struct { 3834 Webhook *string `json:"webhook,omitempty"` // 回调地址 3835 ActionKey *string `json:"action_key,omitempty"` // 开发者自己识别的action_key,标识快捷组件的作用,回调时会把该字段带到回调地址 3836 } 3837 3838 type ToolkitCallbackBuilder struct { 3839 webhook string // 回调地址 3840 webhookFlag bool 3841 actionKey string // 开发者自己识别的action_key,标识快捷组件的作用,回调时会把该字段带到回调地址 3842 actionKeyFlag bool 3843 } 3844 3845 func NewToolkitCallbackBuilder() *ToolkitCallbackBuilder { 3846 builder := &ToolkitCallbackBuilder{} 3847 return builder 3848 } 3849 3850 // 回调地址 3851 // 3852 // 示例值:https://***.com/ 3853 func (builder *ToolkitCallbackBuilder) Webhook(webhook string) *ToolkitCallbackBuilder { 3854 builder.webhook = webhook 3855 builder.webhookFlag = true 3856 return builder 3857 } 3858 3859 // 开发者自己识别的action_key,标识快捷组件的作用,回调时会把该字段带到回调地址 3860 // 3861 // 示例值:SendMessage 3862 func (builder *ToolkitCallbackBuilder) ActionKey(actionKey string) *ToolkitCallbackBuilder { 3863 builder.actionKey = actionKey 3864 builder.actionKeyFlag = true 3865 return builder 3866 } 3867 3868 func (builder *ToolkitCallbackBuilder) Build() *ToolkitCallback { 3869 req := &ToolkitCallback{} 3870 if builder.webhookFlag { 3871 req.Webhook = &builder.webhook 3872 3873 } 3874 if builder.actionKeyFlag { 3875 req.ActionKey = &builder.actionKey 3876 3877 } 3878 return req 3879 } 3880 3881 type ToolkitRedirectLink struct { 3882 Url *string `json:"url,omitempty"` // 跳转url 3883 } 3884 3885 type ToolkitRedirectLinkBuilder struct { 3886 url string // 跳转url 3887 urlFlag bool 3888 } 3889 3890 func NewToolkitRedirectLinkBuilder() *ToolkitRedirectLinkBuilder { 3891 builder := &ToolkitRedirectLinkBuilder{} 3892 return builder 3893 } 3894 3895 // 跳转url 3896 // 3897 // 示例值:https://applink.feishu.cn/client/calendar/open 3898 func (builder *ToolkitRedirectLinkBuilder) Url(url string) *ToolkitRedirectLinkBuilder { 3899 builder.url = url 3900 builder.urlFlag = true 3901 return builder 3902 } 3903 3904 func (builder *ToolkitRedirectLinkBuilder) Build() *ToolkitRedirectLink { 3905 req := &ToolkitRedirectLink{} 3906 if builder.urlFlag { 3907 req.Url = &builder.url 3908 3909 } 3910 return req 3911 } 3912 3913 type UrgentReceivers struct { 3914 UserIdList []string `json:"user_id_list,omitempty"` // 目标用户的ID。列表不可为空。 3915 } 3916 3917 type UrgentReceiversBuilder struct { 3918 userIdList []string // 目标用户的ID。列表不可为空。 3919 userIdListFlag bool 3920 } 3921 3922 func NewUrgentReceiversBuilder() *UrgentReceiversBuilder { 3923 builder := &UrgentReceiversBuilder{} 3924 return builder 3925 } 3926 3927 // 目标用户的ID。列表不可为空。 3928 // 3929 // 示例值:["ou_6yf8af6bgb9100449565764t3382b168"] 3930 func (builder *UrgentReceiversBuilder) UserIdList(userIdList []string) *UrgentReceiversBuilder { 3931 builder.userIdList = userIdList 3932 builder.userIdListFlag = true 3933 return builder 3934 } 3935 3936 func (builder *UrgentReceiversBuilder) Build() *UrgentReceivers { 3937 req := &UrgentReceivers{} 3938 if builder.userIdListFlag { 3939 req.UserIdList = builder.userIdList 3940 } 3941 return req 3942 } 3943 3944 type UserId struct { 3945 UserId *string `json:"user_id,omitempty"` // 3946 OpenId *string `json:"open_id,omitempty"` // 3947 UnionId *string `json:"union_id,omitempty"` // 3948 } 3949 3950 type UserIdBuilder struct { 3951 userId string // 3952 userIdFlag bool 3953 openId string // 3954 openIdFlag bool 3955 unionId string // 3956 unionIdFlag bool 3957 } 3958 3959 func NewUserIdBuilder() *UserIdBuilder { 3960 builder := &UserIdBuilder{} 3961 return builder 3962 } 3963 3964 // 3965 // 3966 // 示例值: 3967 func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder { 3968 builder.userId = userId 3969 builder.userIdFlag = true 3970 return builder 3971 } 3972 3973 // 3974 // 3975 // 示例值: 3976 func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder { 3977 builder.openId = openId 3978 builder.openIdFlag = true 3979 return builder 3980 } 3981 3982 // 3983 // 3984 // 示例值: 3985 func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder { 3986 builder.unionId = unionId 3987 builder.unionIdFlag = true 3988 return builder 3989 } 3990 3991 func (builder *UserIdBuilder) Build() *UserId { 3992 req := &UserId{} 3993 if builder.userIdFlag { 3994 req.UserId = &builder.userId 3995 3996 } 3997 if builder.openIdFlag { 3998 req.OpenId = &builder.openId 3999 4000 } 4001 if builder.unionIdFlag { 4002 req.UnionId = &builder.unionId 4003 4004 } 4005 return req 4006 } 4007 4008 type DeleteBatchMessageReqBuilder struct { 4009 apiReq *larkcore.ApiReq 4010 } 4011 4012 func NewDeleteBatchMessageReqBuilder() *DeleteBatchMessageReqBuilder { 4013 builder := &DeleteBatchMessageReqBuilder{} 4014 builder.apiReq = &larkcore.ApiReq{ 4015 PathParams: larkcore.PathParams{}, 4016 QueryParams: larkcore.QueryParams{}, 4017 } 4018 return builder 4019 } 4020 4021 // 待撤回的批量消息的ID 4022 // 4023 // 示例值:bm-dc13264520392913993dd051dba21dcf 4024 func (builder *DeleteBatchMessageReqBuilder) BatchMessageId(batchMessageId string) *DeleteBatchMessageReqBuilder { 4025 builder.apiReq.PathParams.Set("batch_message_id", fmt.Sprint(batchMessageId)) 4026 return builder 4027 } 4028 4029 func (builder *DeleteBatchMessageReqBuilder) Build() *DeleteBatchMessageReq { 4030 req := &DeleteBatchMessageReq{} 4031 req.apiReq = &larkcore.ApiReq{} 4032 req.apiReq.PathParams = builder.apiReq.PathParams 4033 return req 4034 } 4035 4036 type DeleteBatchMessageReq struct { 4037 apiReq *larkcore.ApiReq 4038 } 4039 4040 type DeleteBatchMessageResp struct { 4041 *larkcore.ApiResp `json:"-"` 4042 larkcore.CodeError 4043 } 4044 4045 func (resp *DeleteBatchMessageResp) Success() bool { 4046 return resp.Code == 0 4047 } 4048 4049 type GetProgressBatchMessageReqBuilder struct { 4050 apiReq *larkcore.ApiReq 4051 } 4052 4053 func NewGetProgressBatchMessageReqBuilder() *GetProgressBatchMessageReqBuilder { 4054 builder := &GetProgressBatchMessageReqBuilder{} 4055 builder.apiReq = &larkcore.ApiReq{ 4056 PathParams: larkcore.PathParams{}, 4057 QueryParams: larkcore.QueryParams{}, 4058 } 4059 return builder 4060 } 4061 4062 // 待查询的批量消息的ID 4063 // 4064 // 示例值:bm-0b3d5d1b2df7c6d5dbd1abe2c91e2217 4065 func (builder *GetProgressBatchMessageReqBuilder) BatchMessageId(batchMessageId string) *GetProgressBatchMessageReqBuilder { 4066 builder.apiReq.PathParams.Set("batch_message_id", fmt.Sprint(batchMessageId)) 4067 return builder 4068 } 4069 4070 func (builder *GetProgressBatchMessageReqBuilder) Build() *GetProgressBatchMessageReq { 4071 req := &GetProgressBatchMessageReq{} 4072 req.apiReq = &larkcore.ApiReq{} 4073 req.apiReq.PathParams = builder.apiReq.PathParams 4074 return req 4075 } 4076 4077 type GetProgressBatchMessageReq struct { 4078 apiReq *larkcore.ApiReq 4079 } 4080 4081 type GetProgressBatchMessageRespData struct { 4082 BatchMessageSendProgress *BatchMessageSendProgress `json:"batch_message_send_progress,omitempty"` // 消息发送进度 4083 BatchMessageRecallProgress *BatchMessageRecallProgress `json:"batch_message_recall_progress,omitempty"` // 消息撤回进度 4084 } 4085 4086 type GetProgressBatchMessageResp struct { 4087 *larkcore.ApiResp `json:"-"` 4088 larkcore.CodeError 4089 Data *GetProgressBatchMessageRespData `json:"data"` // 业务数据 4090 } 4091 4092 func (resp *GetProgressBatchMessageResp) Success() bool { 4093 return resp.Code == 0 4094 } 4095 4096 type ReadUserBatchMessageReqBuilder struct { 4097 apiReq *larkcore.ApiReq 4098 } 4099 4100 func NewReadUserBatchMessageReqBuilder() *ReadUserBatchMessageReqBuilder { 4101 builder := &ReadUserBatchMessageReqBuilder{} 4102 builder.apiReq = &larkcore.ApiReq{ 4103 PathParams: larkcore.PathParams{}, 4104 QueryParams: larkcore.QueryParams{}, 4105 } 4106 return builder 4107 } 4108 4109 // 待查询的批量消息的ID 4110 // 4111 // 示例值:bm_dc13264520392913993dd051dba21dcf 4112 func (builder *ReadUserBatchMessageReqBuilder) BatchMessageId(batchMessageId string) *ReadUserBatchMessageReqBuilder { 4113 builder.apiReq.PathParams.Set("batch_message_id", fmt.Sprint(batchMessageId)) 4114 return builder 4115 } 4116 4117 func (builder *ReadUserBatchMessageReqBuilder) Build() *ReadUserBatchMessageReq { 4118 req := &ReadUserBatchMessageReq{} 4119 req.apiReq = &larkcore.ApiReq{} 4120 req.apiReq.PathParams = builder.apiReq.PathParams 4121 return req 4122 } 4123 4124 type ReadUserBatchMessageReq struct { 4125 apiReq *larkcore.ApiReq 4126 } 4127 4128 type ReadUserBatchMessageRespData struct { 4129 ReadUser *BatchMessageReadUser `json:"read_user,omitempty"` // 批量发送消息的用户阅读情况 4130 } 4131 4132 type ReadUserBatchMessageResp struct { 4133 *larkcore.ApiResp `json:"-"` 4134 larkcore.CodeError 4135 Data *ReadUserBatchMessageRespData `json:"data"` // 业务数据 4136 } 4137 4138 func (resp *ReadUserBatchMessageResp) Success() bool { 4139 return resp.Code == 0 4140 } 4141 4142 type CreateChatReqBodyBuilder struct { 4143 avatar string // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4144 avatarFlag bool 4145 name string // 群名称;; **注意:** 公开群名称的长度不得少于2个字符 4146 nameFlag bool 4147 description string // 群描述 4148 descriptionFlag bool 4149 i18nNames *I18nNames // 群国际化名称 4150 i18nNamesFlag bool 4151 ownerId string // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 4152 ownerIdFlag bool 4153 userIdList []string // 创建群时邀请的群成员,id 类型为 user_id_type 4154 userIdListFlag bool 4155 botIdList []string // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id== 4156 botIdListFlag bool 4157 chatMode string // 群模式;;**可选值有**:;- `group`:群组 4158 chatModeFlag bool 4159 chatType string // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群 4160 chatTypeFlag bool 4161 external bool // 是否是外部群 4162 externalFlag bool 4163 joinMessageVisibility string // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4164 joinMessageVisibilityFlag bool 4165 leaveMessageVisibility string // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4166 leaveMessageVisibilityFlag bool 4167 membershipApproval string // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批 4168 membershipApprovalFlag bool 4169 } 4170 4171 func NewCreateChatReqBodyBuilder() *CreateChatReqBodyBuilder { 4172 builder := &CreateChatReqBodyBuilder{} 4173 return builder 4174 } 4175 4176 // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4177 // 4178 //示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435 4179 func (builder *CreateChatReqBodyBuilder) Avatar(avatar string) *CreateChatReqBodyBuilder { 4180 builder.avatar = avatar 4181 builder.avatarFlag = true 4182 return builder 4183 } 4184 4185 // 群名称;; **注意:** 公开群名称的长度不得少于2个字符 4186 // 4187 //示例值:测试群名称 4188 func (builder *CreateChatReqBodyBuilder) Name(name string) *CreateChatReqBodyBuilder { 4189 builder.name = name 4190 builder.nameFlag = true 4191 return builder 4192 } 4193 4194 // 群描述 4195 // 4196 //示例值:测试群描述 4197 func (builder *CreateChatReqBodyBuilder) Description(description string) *CreateChatReqBodyBuilder { 4198 builder.description = description 4199 builder.descriptionFlag = true 4200 return builder 4201 } 4202 4203 // 群国际化名称 4204 // 4205 //示例值: 4206 func (builder *CreateChatReqBodyBuilder) I18nNames(i18nNames *I18nNames) *CreateChatReqBodyBuilder { 4207 builder.i18nNames = i18nNames 4208 builder.i18nNamesFlag = true 4209 return builder 4210 } 4211 4212 // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 4213 // 4214 //示例值:4d7a3c6g 4215 func (builder *CreateChatReqBodyBuilder) OwnerId(ownerId string) *CreateChatReqBodyBuilder { 4216 builder.ownerId = ownerId 4217 builder.ownerIdFlag = true 4218 return builder 4219 } 4220 4221 // 创建群时邀请的群成员,id 类型为 user_id_type 4222 // 4223 //示例值:["4d7a3c6g"] 4224 func (builder *CreateChatReqBodyBuilder) UserIdList(userIdList []string) *CreateChatReqBodyBuilder { 4225 builder.userIdList = userIdList 4226 builder.userIdListFlag = true 4227 return builder 4228 } 4229 4230 // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id== 4231 // 4232 //示例值:["cli_a10fbf7e94b8d01d"] 4233 func (builder *CreateChatReqBodyBuilder) BotIdList(botIdList []string) *CreateChatReqBodyBuilder { 4234 builder.botIdList = botIdList 4235 builder.botIdListFlag = true 4236 return builder 4237 } 4238 4239 // 群模式;;**可选值有**:;- `group`:群组 4240 // 4241 //示例值:group 4242 func (builder *CreateChatReqBodyBuilder) ChatMode(chatMode string) *CreateChatReqBodyBuilder { 4243 builder.chatMode = chatMode 4244 builder.chatModeFlag = true 4245 return builder 4246 } 4247 4248 // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群 4249 // 4250 //示例值:private 4251 func (builder *CreateChatReqBodyBuilder) ChatType(chatType string) *CreateChatReqBodyBuilder { 4252 builder.chatType = chatType 4253 builder.chatTypeFlag = true 4254 return builder 4255 } 4256 4257 // 是否是外部群 4258 // 4259 //示例值:false 4260 func (builder *CreateChatReqBodyBuilder) External(external bool) *CreateChatReqBodyBuilder { 4261 builder.external = external 4262 builder.externalFlag = true 4263 return builder 4264 } 4265 4266 // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4267 // 4268 //示例值:all_members 4269 func (builder *CreateChatReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *CreateChatReqBodyBuilder { 4270 builder.joinMessageVisibility = joinMessageVisibility 4271 builder.joinMessageVisibilityFlag = true 4272 return builder 4273 } 4274 4275 // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4276 // 4277 //示例值:all_members 4278 func (builder *CreateChatReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *CreateChatReqBodyBuilder { 4279 builder.leaveMessageVisibility = leaveMessageVisibility 4280 builder.leaveMessageVisibilityFlag = true 4281 return builder 4282 } 4283 4284 // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批 4285 // 4286 //示例值:no_approval_required 4287 func (builder *CreateChatReqBodyBuilder) MembershipApproval(membershipApproval string) *CreateChatReqBodyBuilder { 4288 builder.membershipApproval = membershipApproval 4289 builder.membershipApprovalFlag = true 4290 return builder 4291 } 4292 4293 func (builder *CreateChatReqBodyBuilder) Build() *CreateChatReqBody { 4294 req := &CreateChatReqBody{} 4295 if builder.avatarFlag { 4296 req.Avatar = &builder.avatar 4297 } 4298 if builder.nameFlag { 4299 req.Name = &builder.name 4300 } 4301 if builder.descriptionFlag { 4302 req.Description = &builder.description 4303 } 4304 if builder.i18nNamesFlag { 4305 req.I18nNames = builder.i18nNames 4306 } 4307 if builder.ownerIdFlag { 4308 req.OwnerId = &builder.ownerId 4309 } 4310 if builder.userIdListFlag { 4311 req.UserIdList = builder.userIdList 4312 } 4313 if builder.botIdListFlag { 4314 req.BotIdList = builder.botIdList 4315 } 4316 if builder.chatModeFlag { 4317 req.ChatMode = &builder.chatMode 4318 } 4319 if builder.chatTypeFlag { 4320 req.ChatType = &builder.chatType 4321 } 4322 if builder.externalFlag { 4323 req.External = &builder.external 4324 } 4325 if builder.joinMessageVisibilityFlag { 4326 req.JoinMessageVisibility = &builder.joinMessageVisibility 4327 } 4328 if builder.leaveMessageVisibilityFlag { 4329 req.LeaveMessageVisibility = &builder.leaveMessageVisibility 4330 } 4331 if builder.membershipApprovalFlag { 4332 req.MembershipApproval = &builder.membershipApproval 4333 } 4334 return req 4335 } 4336 4337 type CreateChatPathReqBodyBuilder struct { 4338 avatar string // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4339 avatarFlag bool 4340 name string // 群名称;; **注意:** 公开群名称的长度不得少于2个字符 4341 nameFlag bool 4342 description string // 群描述 4343 descriptionFlag bool 4344 i18nNames *I18nNames // 群国际化名称 4345 i18nNamesFlag bool 4346 ownerId string // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 4347 ownerIdFlag bool 4348 userIdList []string // 创建群时邀请的群成员,id 类型为 user_id_type 4349 userIdListFlag bool 4350 botIdList []string // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id== 4351 botIdListFlag bool 4352 chatMode string // 群模式;;**可选值有**:;- `group`:群组 4353 chatModeFlag bool 4354 chatType string // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群 4355 chatTypeFlag bool 4356 external bool // 是否是外部群 4357 externalFlag bool 4358 joinMessageVisibility string // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4359 joinMessageVisibilityFlag bool 4360 leaveMessageVisibility string // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4361 leaveMessageVisibilityFlag bool 4362 membershipApproval string // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批 4363 membershipApprovalFlag bool 4364 labels []string // 群标签 4365 labelsFlag bool 4366 toolkitIds []string // 群快捷组件列表 4367 toolkitIdsFlag bool 4368 } 4369 4370 func NewCreateChatPathReqBodyBuilder() *CreateChatPathReqBodyBuilder { 4371 builder := &CreateChatPathReqBodyBuilder{} 4372 return builder 4373 } 4374 4375 // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4376 // 4377 // 示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435 4378 func (builder *CreateChatPathReqBodyBuilder) Avatar(avatar string) *CreateChatPathReqBodyBuilder { 4379 builder.avatar = avatar 4380 builder.avatarFlag = true 4381 return builder 4382 } 4383 4384 // 群名称;; **注意:** 公开群名称的长度不得少于2个字符 4385 // 4386 // 示例值:测试群名称 4387 func (builder *CreateChatPathReqBodyBuilder) Name(name string) *CreateChatPathReqBodyBuilder { 4388 builder.name = name 4389 builder.nameFlag = true 4390 return builder 4391 } 4392 4393 // 群描述 4394 // 4395 // 示例值:测试群描述 4396 func (builder *CreateChatPathReqBodyBuilder) Description(description string) *CreateChatPathReqBodyBuilder { 4397 builder.description = description 4398 builder.descriptionFlag = true 4399 return builder 4400 } 4401 4402 // 群国际化名称 4403 // 4404 // 示例值: 4405 func (builder *CreateChatPathReqBodyBuilder) I18nNames(i18nNames *I18nNames) *CreateChatPathReqBodyBuilder { 4406 builder.i18nNames = i18nNames 4407 builder.i18nNamesFlag = true 4408 return builder 4409 } 4410 4411 // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 4412 // 4413 // 示例值:4d7a3c6g 4414 func (builder *CreateChatPathReqBodyBuilder) OwnerId(ownerId string) *CreateChatPathReqBodyBuilder { 4415 builder.ownerId = ownerId 4416 builder.ownerIdFlag = true 4417 return builder 4418 } 4419 4420 // 创建群时邀请的群成员,id 类型为 user_id_type 4421 // 4422 // 示例值:["4d7a3c6g"] 4423 func (builder *CreateChatPathReqBodyBuilder) UserIdList(userIdList []string) *CreateChatPathReqBodyBuilder { 4424 builder.userIdList = userIdList 4425 builder.userIdListFlag = true 4426 return builder 4427 } 4428 4429 // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id== 4430 // 4431 // 示例值:["cli_a10fbf7e94b8d01d"] 4432 func (builder *CreateChatPathReqBodyBuilder) BotIdList(botIdList []string) *CreateChatPathReqBodyBuilder { 4433 builder.botIdList = botIdList 4434 builder.botIdListFlag = true 4435 return builder 4436 } 4437 4438 // 群模式;;**可选值有**:;- `group`:群组 4439 // 4440 // 示例值:group 4441 func (builder *CreateChatPathReqBodyBuilder) ChatMode(chatMode string) *CreateChatPathReqBodyBuilder { 4442 builder.chatMode = chatMode 4443 builder.chatModeFlag = true 4444 return builder 4445 } 4446 4447 // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群 4448 // 4449 // 示例值:private 4450 func (builder *CreateChatPathReqBodyBuilder) ChatType(chatType string) *CreateChatPathReqBodyBuilder { 4451 builder.chatType = chatType 4452 builder.chatTypeFlag = true 4453 return builder 4454 } 4455 4456 // 是否是外部群 4457 // 4458 // 示例值:false 4459 func (builder *CreateChatPathReqBodyBuilder) External(external bool) *CreateChatPathReqBodyBuilder { 4460 builder.external = external 4461 builder.externalFlag = true 4462 return builder 4463 } 4464 4465 // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4466 // 4467 // 示例值:all_members 4468 func (builder *CreateChatPathReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *CreateChatPathReqBodyBuilder { 4469 builder.joinMessageVisibility = joinMessageVisibility 4470 builder.joinMessageVisibilityFlag = true 4471 return builder 4472 } 4473 4474 // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4475 // 4476 // 示例值:all_members 4477 func (builder *CreateChatPathReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *CreateChatPathReqBodyBuilder { 4478 builder.leaveMessageVisibility = leaveMessageVisibility 4479 builder.leaveMessageVisibilityFlag = true 4480 return builder 4481 } 4482 4483 // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批 4484 // 4485 // 示例值:no_approval_required 4486 func (builder *CreateChatPathReqBodyBuilder) MembershipApproval(membershipApproval string) *CreateChatPathReqBodyBuilder { 4487 builder.membershipApproval = membershipApproval 4488 builder.membershipApprovalFlag = true 4489 return builder 4490 } 4491 4492 func (builder *CreateChatPathReqBodyBuilder) Build() (*CreateChatReqBody, error) { 4493 req := &CreateChatReqBody{} 4494 if builder.avatarFlag { 4495 req.Avatar = &builder.avatar 4496 } 4497 if builder.nameFlag { 4498 req.Name = &builder.name 4499 } 4500 if builder.descriptionFlag { 4501 req.Description = &builder.description 4502 } 4503 if builder.i18nNamesFlag { 4504 req.I18nNames = builder.i18nNames 4505 } 4506 if builder.ownerIdFlag { 4507 req.OwnerId = &builder.ownerId 4508 } 4509 if builder.userIdListFlag { 4510 req.UserIdList = builder.userIdList 4511 } 4512 if builder.botIdListFlag { 4513 req.BotIdList = builder.botIdList 4514 } 4515 if builder.chatModeFlag { 4516 req.ChatMode = &builder.chatMode 4517 } 4518 if builder.chatTypeFlag { 4519 req.ChatType = &builder.chatType 4520 } 4521 if builder.externalFlag { 4522 req.External = &builder.external 4523 } 4524 if builder.joinMessageVisibilityFlag { 4525 req.JoinMessageVisibility = &builder.joinMessageVisibility 4526 } 4527 if builder.leaveMessageVisibilityFlag { 4528 req.LeaveMessageVisibility = &builder.leaveMessageVisibility 4529 } 4530 if builder.membershipApprovalFlag { 4531 req.MembershipApproval = &builder.membershipApproval 4532 } 4533 return req, nil 4534 } 4535 4536 type CreateChatReqBuilder struct { 4537 apiReq *larkcore.ApiReq 4538 body *CreateChatReqBody 4539 } 4540 4541 func NewCreateChatReqBuilder() *CreateChatReqBuilder { 4542 builder := &CreateChatReqBuilder{} 4543 builder.apiReq = &larkcore.ApiReq{ 4544 PathParams: larkcore.PathParams{}, 4545 QueryParams: larkcore.QueryParams{}, 4546 } 4547 return builder 4548 } 4549 4550 // 此次调用中使用的用户ID的类型 4551 // 4552 // 示例值: 4553 func (builder *CreateChatReqBuilder) UserIdType(userIdType string) *CreateChatReqBuilder { 4554 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4555 return builder 4556 } 4557 4558 // 如果选择了设置群主为指定用户,可以选择是否同时设置创建此群的机器人为管理员,此标志位用于标记是否设置创建群的机器人为管理员 4559 // 4560 // 示例值:false 4561 func (builder *CreateChatReqBuilder) SetBotManager(setBotManager bool) *CreateChatReqBuilder { 4562 builder.apiReq.QueryParams.Set("set_bot_manager", fmt.Sprint(setBotManager)) 4563 return builder 4564 } 4565 4566 // 创建群并设置群头像、群名、群描述等。 4567 func (builder *CreateChatReqBuilder) Body(body *CreateChatReqBody) *CreateChatReqBuilder { 4568 builder.body = body 4569 return builder 4570 } 4571 4572 func (builder *CreateChatReqBuilder) Build() *CreateChatReq { 4573 req := &CreateChatReq{} 4574 req.apiReq = &larkcore.ApiReq{} 4575 req.apiReq.QueryParams = builder.apiReq.QueryParams 4576 req.apiReq.Body = builder.body 4577 return req 4578 } 4579 4580 type CreateChatReqBody struct { 4581 Avatar *string `json:"avatar,omitempty"` // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4582 Name *string `json:"name,omitempty"` // 群名称;; **注意:** 公开群名称的长度不得少于2个字符 4583 Description *string `json:"description,omitempty"` // 群描述 4584 I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 4585 OwnerId *string `json:"owner_id,omitempty"` // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 4586 UserIdList []string `json:"user_id_list,omitempty"` // 创建群时邀请的群成员,id 类型为 user_id_type 4587 BotIdList []string `json:"bot_id_list,omitempty"` // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id== 4588 ChatMode *string `json:"chat_mode,omitempty"` // 群模式;;**可选值有**:;- `group`:群组 4589 ChatType *string `json:"chat_type,omitempty"` // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群 4590 External *bool `json:"external,omitempty"` // 是否是外部群 4591 JoinMessageVisibility *string `json:"join_message_visibility,omitempty"` // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4592 LeaveMessageVisibility *string `json:"leave_message_visibility,omitempty"` // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4593 MembershipApproval *string `json:"membership_approval,omitempty"` // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批 4594 4595 } 4596 4597 type CreateChatReq struct { 4598 apiReq *larkcore.ApiReq 4599 Body *CreateChatReqBody `body:""` 4600 } 4601 4602 type CreateChatRespData struct { 4603 ChatId *string `json:"chat_id,omitempty"` // 群 ID,详情参见:[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 4604 Avatar *string `json:"avatar,omitempty"` // 群头像 URL 4605 Name *string `json:"name,omitempty"` // 群名称 4606 Description *string `json:"description,omitempty"` // 群描述 4607 I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 4608 OwnerId *string `json:"owner_id,omitempty"` // 群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;当群主是机器人时,该字段不返回 4609 OwnerIdType *string `json:"owner_id_type,omitempty"` // 群主 ID 对应的ID类型,与查询参数中的 user_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。;;当群主是机器人时,该字段不返回 4610 AddMemberPermission *string `json:"add_member_permission,omitempty"` // 拉 用户或机器人 入群权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员 4611 ShareCardPermission *string `json:"share_card_permission,omitempty"` // 群分享权限;;**可选值有**:;- `allowed`:允许;- `not_allowed`:不允许 4612 AtAllPermission *string `json:"at_all_permission,omitempty"` // at 所有人权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员 4613 EditPermission *string `json:"edit_permission,omitempty"` // 群编辑权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员 4614 ChatMode *string `json:"chat_mode,omitempty"` // 群模式;;**可选值有**:;- `group`:群组 4615 ChatType *string `json:"chat_type,omitempty"` // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群 4616 ChatTag *string `json:"chat_tag,omitempty"` // 群标签,如有多个,则按照下列顺序返回第一个;;**可选值有**:;- `inner`:内部群;- `tenant`:公司群;- `department`:部门群;- `edu`:教育群;- `meeting`:会议群;- `customer_service`:客服群 4617 External *bool `json:"external,omitempty"` // 是否是外部群 4618 TenantKey *string `json:"tenant_key,omitempty"` // 租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识 4619 JoinMessageVisibility *string `json:"join_message_visibility,omitempty"` // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4620 LeaveMessageVisibility *string `json:"leave_message_visibility,omitempty"` // 出群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见 4621 MembershipApproval *string `json:"membership_approval,omitempty"` // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批 4622 ModerationPermission *string `json:"moderation_permission,omitempty"` // 发言权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员;- `moderator_list`:指定群成员 4623 4624 } 4625 4626 type CreateChatResp struct { 4627 *larkcore.ApiResp `json:"-"` 4628 larkcore.CodeError 4629 Data *CreateChatRespData `json:"data"` // 业务数据 4630 } 4631 4632 func (resp *CreateChatResp) Success() bool { 4633 return resp.Code == 0 4634 } 4635 4636 type DeleteChatReqBuilder struct { 4637 apiReq *larkcore.ApiReq 4638 } 4639 4640 func NewDeleteChatReqBuilder() *DeleteChatReqBuilder { 4641 builder := &DeleteChatReqBuilder{} 4642 builder.apiReq = &larkcore.ApiReq{ 4643 PathParams: larkcore.PathParams{}, 4644 QueryParams: larkcore.QueryParams{}, 4645 } 4646 return builder 4647 } 4648 4649 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 4650 // 4651 // 示例值:oc_a0553eda9014c201e6969b478895c230 4652 func (builder *DeleteChatReqBuilder) ChatId(chatId string) *DeleteChatReqBuilder { 4653 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 4654 return builder 4655 } 4656 4657 func (builder *DeleteChatReqBuilder) Build() *DeleteChatReq { 4658 req := &DeleteChatReq{} 4659 req.apiReq = &larkcore.ApiReq{} 4660 req.apiReq.PathParams = builder.apiReq.PathParams 4661 return req 4662 } 4663 4664 type DeleteChatReq struct { 4665 apiReq *larkcore.ApiReq 4666 } 4667 4668 type DeleteChatResp struct { 4669 *larkcore.ApiResp `json:"-"` 4670 larkcore.CodeError 4671 } 4672 4673 func (resp *DeleteChatResp) Success() bool { 4674 return resp.Code == 0 4675 } 4676 4677 type GetChatReqBuilder struct { 4678 apiReq *larkcore.ApiReq 4679 } 4680 4681 func NewGetChatReqBuilder() *GetChatReqBuilder { 4682 builder := &GetChatReqBuilder{} 4683 builder.apiReq = &larkcore.ApiReq{ 4684 PathParams: larkcore.PathParams{}, 4685 QueryParams: larkcore.QueryParams{}, 4686 } 4687 return builder 4688 } 4689 4690 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 4691 // 4692 // 示例值:oc_a0553eda9014c201e6969b478895c230 4693 func (builder *GetChatReqBuilder) ChatId(chatId string) *GetChatReqBuilder { 4694 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 4695 return builder 4696 } 4697 4698 // 此次调用中使用的用户ID的类型 4699 // 4700 // 示例值: 4701 func (builder *GetChatReqBuilder) UserIdType(userIdType string) *GetChatReqBuilder { 4702 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4703 return builder 4704 } 4705 4706 func (builder *GetChatReqBuilder) Build() *GetChatReq { 4707 req := &GetChatReq{} 4708 req.apiReq = &larkcore.ApiReq{} 4709 req.apiReq.PathParams = builder.apiReq.PathParams 4710 req.apiReq.QueryParams = builder.apiReq.QueryParams 4711 return req 4712 } 4713 4714 type GetChatReq struct { 4715 apiReq *larkcore.ApiReq 4716 } 4717 4718 type GetChatRespData struct { 4719 Avatar *string `json:"avatar,omitempty"` // 群头像 URL 4720 Name *string `json:"name,omitempty"` // 群名称 4721 Description *string `json:"description,omitempty"` // 群描述 4722 I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 4723 AddMemberPermission *string `json:"add_member_permission,omitempty"` // 群成员添加权限(all_members/only_owner) 4724 ShareCardPermission *string `json:"share_card_permission,omitempty"` // 群分享权限(allowed/not_allowed) 4725 AtAllPermission *string `json:"at_all_permission,omitempty"` // at 所有人权限(all_members/only_owner) 4726 EditPermission *string `json:"edit_permission,omitempty"` // 群编辑权限(all_members/only_owner) 4727 OwnerIdType *string `json:"owner_id_type,omitempty"` // 群主 ID 的类型(open_id/user_id/union_id),群主是机器人时,不返回该字段。 4728 OwnerId *string `json:"owner_id,omitempty"` // 群主 ID,群主是机器人时,不返回该字段。 4729 ChatMode *string `json:"chat_mode,omitempty"` // 群模式(group/topic/p2p) 4730 ChatType *string `json:"chat_type,omitempty"` // 群类型(private/public) 4731 ChatTag *string `json:"chat_tag,omitempty"` // 优先级最高的一个群tag(inner/tenant/department/edu/meeting/customer_service) 4732 JoinMessageVisibility *string `json:"join_message_visibility,omitempty"` // 入群消息可见性(only_owner/all_members/not_anyone) 4733 LeaveMessageVisibility *string `json:"leave_message_visibility,omitempty"` // 出群消息可见性(only_owner/all_members/not_anyone) 4734 MembershipApproval *string `json:"membership_approval,omitempty"` // 加群审批(no_approval_required/approval_required) 4735 ModerationPermission *string `json:"moderation_permission,omitempty"` // 发言权限(all_members/only_owner/moderator_list) 4736 External *bool `json:"external,omitempty"` // 是否是外部群 4737 TenantKey *string `json:"tenant_key,omitempty"` // tenant key 4738 UserCount *string `json:"user_count,omitempty"` // 群成员人数 4739 BotCount *string `json:"bot_count,omitempty"` // 群机器人数 4740 4741 } 4742 4743 type GetChatResp struct { 4744 *larkcore.ApiResp `json:"-"` 4745 larkcore.CodeError 4746 Data *GetChatRespData `json:"data"` // 业务数据 4747 } 4748 4749 func (resp *GetChatResp) Success() bool { 4750 return resp.Code == 0 4751 } 4752 4753 type ListChatReqBuilder struct { 4754 apiReq *larkcore.ApiReq 4755 limit int // 最大返回多少记录,当使用迭代器访问时才有效 4756 } 4757 4758 func NewListChatReqBuilder() *ListChatReqBuilder { 4759 builder := &ListChatReqBuilder{} 4760 builder.apiReq = &larkcore.ApiReq{ 4761 PathParams: larkcore.PathParams{}, 4762 QueryParams: larkcore.QueryParams{}, 4763 } 4764 return builder 4765 } 4766 4767 // 最大返回多少记录,当使用迭代器访问时才有效 4768 func (builder *ListChatReqBuilder) Limit(limit int) *ListChatReqBuilder { 4769 builder.limit = limit 4770 return builder 4771 } 4772 4773 // 此次调用中使用的用户ID的类型 4774 // 4775 // 示例值: 4776 func (builder *ListChatReqBuilder) UserIdType(userIdType string) *ListChatReqBuilder { 4777 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4778 return builder 4779 } 4780 4781 // 4782 // 4783 // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ== 4784 func (builder *ListChatReqBuilder) PageToken(pageToken string) *ListChatReqBuilder { 4785 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4786 return builder 4787 } 4788 4789 // 4790 // 4791 // 示例值:10 4792 func (builder *ListChatReqBuilder) PageSize(pageSize int) *ListChatReqBuilder { 4793 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4794 return builder 4795 } 4796 4797 func (builder *ListChatReqBuilder) Build() *ListChatReq { 4798 req := &ListChatReq{} 4799 req.apiReq = &larkcore.ApiReq{} 4800 req.Limit = builder.limit 4801 req.apiReq.QueryParams = builder.apiReq.QueryParams 4802 return req 4803 } 4804 4805 type ListChatReq struct { 4806 apiReq *larkcore.ApiReq 4807 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 4808 4809 } 4810 4811 type ListChatRespData struct { 4812 Items []*ListChat `json:"items,omitempty"` // chat 列表 4813 PageToken *string `json:"page_token,omitempty"` // 4814 HasMore *bool `json:"has_more,omitempty"` // 4815 } 4816 4817 type ListChatResp struct { 4818 *larkcore.ApiResp `json:"-"` 4819 larkcore.CodeError 4820 Data *ListChatRespData `json:"data"` // 业务数据 4821 } 4822 4823 func (resp *ListChatResp) Success() bool { 4824 return resp.Code == 0 4825 } 4826 4827 type SearchChatReqBuilder struct { 4828 apiReq *larkcore.ApiReq 4829 limit int // 最大返回多少记录,当使用迭代器访问时才有效 4830 } 4831 4832 func NewSearchChatReqBuilder() *SearchChatReqBuilder { 4833 builder := &SearchChatReqBuilder{} 4834 builder.apiReq = &larkcore.ApiReq{ 4835 PathParams: larkcore.PathParams{}, 4836 QueryParams: larkcore.QueryParams{}, 4837 } 4838 return builder 4839 } 4840 4841 // 最大返回多少记录,当使用迭代器访问时才有效 4842 func (builder *SearchChatReqBuilder) Limit(limit int) *SearchChatReqBuilder { 4843 builder.limit = limit 4844 return builder 4845 } 4846 4847 // 此次调用中使用的用户ID的类型 4848 // 4849 // 示例值: 4850 func (builder *SearchChatReqBuilder) UserIdType(userIdType string) *SearchChatReqBuilder { 4851 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4852 return builder 4853 } 4854 4855 // 关键词。注意:如果query为空值将返回空的结果 4856 // 4857 // 示例值:abc 4858 func (builder *SearchChatReqBuilder) Query(query string) *SearchChatReqBuilder { 4859 builder.apiReq.QueryParams.Set("query", fmt.Sprint(query)) 4860 return builder 4861 } 4862 4863 // 4864 // 4865 // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ== 4866 func (builder *SearchChatReqBuilder) PageToken(pageToken string) *SearchChatReqBuilder { 4867 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4868 return builder 4869 } 4870 4871 // 4872 // 4873 // 示例值:10 4874 func (builder *SearchChatReqBuilder) PageSize(pageSize int) *SearchChatReqBuilder { 4875 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4876 return builder 4877 } 4878 4879 func (builder *SearchChatReqBuilder) Build() *SearchChatReq { 4880 req := &SearchChatReq{} 4881 req.apiReq = &larkcore.ApiReq{} 4882 req.Limit = builder.limit 4883 req.apiReq.QueryParams = builder.apiReq.QueryParams 4884 return req 4885 } 4886 4887 type SearchChatReq struct { 4888 apiReq *larkcore.ApiReq 4889 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 4890 4891 } 4892 4893 type SearchChatRespData struct { 4894 Items []*ListChat `json:"items,omitempty"` // chat 列表 4895 PageToken *string `json:"page_token,omitempty"` // 4896 HasMore *bool `json:"has_more,omitempty"` // 是否还有更多群组 4897 } 4898 4899 type SearchChatResp struct { 4900 *larkcore.ApiResp `json:"-"` 4901 larkcore.CodeError 4902 Data *SearchChatRespData `json:"data"` // 业务数据 4903 } 4904 4905 func (resp *SearchChatResp) Success() bool { 4906 return resp.Code == 0 4907 } 4908 4909 type UpdateChatReqBodyBuilder struct { 4910 avatar string // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4911 avatarFlag bool 4912 name string // 群名称 4913 nameFlag bool 4914 description string // 群描述 4915 descriptionFlag bool 4916 i18nNames *I18nNames // 群国际化名称 4917 i18nNamesFlag bool 4918 addMemberPermission string // 加 user/bot 入群权限(all_members/only_owner) 4919 addMemberPermissionFlag bool 4920 shareCardPermission string // 群分享权限(allowed/not_allowed) 4921 shareCardPermissionFlag bool 4922 atAllPermission string // at 所有人权限(all_members/only_owner) 4923 atAllPermissionFlag bool 4924 editPermission string // 群编辑权限(all_members/only_owner) 4925 editPermissionFlag bool 4926 ownerId string // 新群主 ID 4927 ownerIdFlag bool 4928 joinMessageVisibility string // 入群消息可见性(only_owner/all_members/not_anyone) 4929 joinMessageVisibilityFlag bool 4930 leaveMessageVisibility string // 出群消息可见性(only_owner/all_members/not_anyone) 4931 leaveMessageVisibilityFlag bool 4932 membershipApproval string // 加群审批(no_approval_required/approval_required) 4933 membershipApprovalFlag bool 4934 } 4935 4936 func NewUpdateChatReqBodyBuilder() *UpdateChatReqBodyBuilder { 4937 builder := &UpdateChatReqBodyBuilder{} 4938 return builder 4939 } 4940 4941 // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 4942 // 4943 //示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435 4944 func (builder *UpdateChatReqBodyBuilder) Avatar(avatar string) *UpdateChatReqBodyBuilder { 4945 builder.avatar = avatar 4946 builder.avatarFlag = true 4947 return builder 4948 } 4949 4950 // 群名称 4951 // 4952 //示例值:群聊 4953 func (builder *UpdateChatReqBodyBuilder) Name(name string) *UpdateChatReqBodyBuilder { 4954 builder.name = name 4955 builder.nameFlag = true 4956 return builder 4957 } 4958 4959 // 群描述 4960 // 4961 //示例值:测试群描述 4962 func (builder *UpdateChatReqBodyBuilder) Description(description string) *UpdateChatReqBodyBuilder { 4963 builder.description = description 4964 builder.descriptionFlag = true 4965 return builder 4966 } 4967 4968 // 群国际化名称 4969 // 4970 //示例值: 4971 func (builder *UpdateChatReqBodyBuilder) I18nNames(i18nNames *I18nNames) *UpdateChatReqBodyBuilder { 4972 builder.i18nNames = i18nNames 4973 builder.i18nNamesFlag = true 4974 return builder 4975 } 4976 4977 // 加 user/bot 入群权限(all_members/only_owner) 4978 // 4979 //示例值:all_members 4980 func (builder *UpdateChatReqBodyBuilder) AddMemberPermission(addMemberPermission string) *UpdateChatReqBodyBuilder { 4981 builder.addMemberPermission = addMemberPermission 4982 builder.addMemberPermissionFlag = true 4983 return builder 4984 } 4985 4986 // 群分享权限(allowed/not_allowed) 4987 // 4988 //示例值:allowed 4989 func (builder *UpdateChatReqBodyBuilder) ShareCardPermission(shareCardPermission string) *UpdateChatReqBodyBuilder { 4990 builder.shareCardPermission = shareCardPermission 4991 builder.shareCardPermissionFlag = true 4992 return builder 4993 } 4994 4995 // at 所有人权限(all_members/only_owner) 4996 // 4997 //示例值:all_members 4998 func (builder *UpdateChatReqBodyBuilder) AtAllPermission(atAllPermission string) *UpdateChatReqBodyBuilder { 4999 builder.atAllPermission = atAllPermission 5000 builder.atAllPermissionFlag = true 5001 return builder 5002 } 5003 5004 // 群编辑权限(all_members/only_owner) 5005 // 5006 //示例值:all_members 5007 func (builder *UpdateChatReqBodyBuilder) EditPermission(editPermission string) *UpdateChatReqBodyBuilder { 5008 builder.editPermission = editPermission 5009 builder.editPermissionFlag = true 5010 return builder 5011 } 5012 5013 // 新群主 ID 5014 // 5015 //示例值:4d7a3c6g 5016 func (builder *UpdateChatReqBodyBuilder) OwnerId(ownerId string) *UpdateChatReqBodyBuilder { 5017 builder.ownerId = ownerId 5018 builder.ownerIdFlag = true 5019 return builder 5020 } 5021 5022 // 入群消息可见性(only_owner/all_members/not_anyone) 5023 // 5024 //示例值:only_owner 5025 func (builder *UpdateChatReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *UpdateChatReqBodyBuilder { 5026 builder.joinMessageVisibility = joinMessageVisibility 5027 builder.joinMessageVisibilityFlag = true 5028 return builder 5029 } 5030 5031 // 出群消息可见性(only_owner/all_members/not_anyone) 5032 // 5033 //示例值:only_owner 5034 func (builder *UpdateChatReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *UpdateChatReqBodyBuilder { 5035 builder.leaveMessageVisibility = leaveMessageVisibility 5036 builder.leaveMessageVisibilityFlag = true 5037 return builder 5038 } 5039 5040 // 加群审批(no_approval_required/approval_required) 5041 // 5042 //示例值:no_approval_required 5043 func (builder *UpdateChatReqBodyBuilder) MembershipApproval(membershipApproval string) *UpdateChatReqBodyBuilder { 5044 builder.membershipApproval = membershipApproval 5045 builder.membershipApprovalFlag = true 5046 return builder 5047 } 5048 5049 func (builder *UpdateChatReqBodyBuilder) Build() *UpdateChatReqBody { 5050 req := &UpdateChatReqBody{} 5051 if builder.avatarFlag { 5052 req.Avatar = &builder.avatar 5053 } 5054 if builder.nameFlag { 5055 req.Name = &builder.name 5056 } 5057 if builder.descriptionFlag { 5058 req.Description = &builder.description 5059 } 5060 if builder.i18nNamesFlag { 5061 req.I18nNames = builder.i18nNames 5062 } 5063 if builder.addMemberPermissionFlag { 5064 req.AddMemberPermission = &builder.addMemberPermission 5065 } 5066 if builder.shareCardPermissionFlag { 5067 req.ShareCardPermission = &builder.shareCardPermission 5068 } 5069 if builder.atAllPermissionFlag { 5070 req.AtAllPermission = &builder.atAllPermission 5071 } 5072 if builder.editPermissionFlag { 5073 req.EditPermission = &builder.editPermission 5074 } 5075 if builder.ownerIdFlag { 5076 req.OwnerId = &builder.ownerId 5077 } 5078 if builder.joinMessageVisibilityFlag { 5079 req.JoinMessageVisibility = &builder.joinMessageVisibility 5080 } 5081 if builder.leaveMessageVisibilityFlag { 5082 req.LeaveMessageVisibility = &builder.leaveMessageVisibility 5083 } 5084 if builder.membershipApprovalFlag { 5085 req.MembershipApproval = &builder.membershipApproval 5086 } 5087 return req 5088 } 5089 5090 type UpdateChatPathReqBodyBuilder struct { 5091 avatar string // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 5092 avatarFlag bool 5093 name string // 群名称 5094 nameFlag bool 5095 description string // 群描述 5096 descriptionFlag bool 5097 i18nNames *I18nNames // 群国际化名称 5098 i18nNamesFlag bool 5099 addMemberPermission string // 加 user/bot 入群权限(all_members/only_owner) 5100 addMemberPermissionFlag bool 5101 shareCardPermission string // 群分享权限(allowed/not_allowed) 5102 shareCardPermissionFlag bool 5103 atAllPermission string // at 所有人权限(all_members/only_owner) 5104 atAllPermissionFlag bool 5105 editPermission string // 群编辑权限(all_members/only_owner) 5106 editPermissionFlag bool 5107 ownerId string // 新群主 ID 5108 ownerIdFlag bool 5109 joinMessageVisibility string // 入群消息可见性(only_owner/all_members/not_anyone) 5110 joinMessageVisibilityFlag bool 5111 leaveMessageVisibility string // 出群消息可见性(only_owner/all_members/not_anyone) 5112 leaveMessageVisibilityFlag bool 5113 membershipApproval string // 加群审批(no_approval_required/approval_required) 5114 membershipApprovalFlag bool 5115 labels []string // 群标签 5116 labelsFlag bool 5117 toolkitIds []string // 群快捷组件列表 5118 toolkitIdsFlag bool 5119 } 5120 5121 func NewUpdateChatPathReqBodyBuilder() *UpdateChatPathReqBodyBuilder { 5122 builder := &UpdateChatPathReqBodyBuilder{} 5123 return builder 5124 } 5125 5126 // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 5127 // 5128 // 示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435 5129 func (builder *UpdateChatPathReqBodyBuilder) Avatar(avatar string) *UpdateChatPathReqBodyBuilder { 5130 builder.avatar = avatar 5131 builder.avatarFlag = true 5132 return builder 5133 } 5134 5135 // 群名称 5136 // 5137 // 示例值:群聊 5138 func (builder *UpdateChatPathReqBodyBuilder) Name(name string) *UpdateChatPathReqBodyBuilder { 5139 builder.name = name 5140 builder.nameFlag = true 5141 return builder 5142 } 5143 5144 // 群描述 5145 // 5146 // 示例值:测试群描述 5147 func (builder *UpdateChatPathReqBodyBuilder) Description(description string) *UpdateChatPathReqBodyBuilder { 5148 builder.description = description 5149 builder.descriptionFlag = true 5150 return builder 5151 } 5152 5153 // 群国际化名称 5154 // 5155 // 示例值: 5156 func (builder *UpdateChatPathReqBodyBuilder) I18nNames(i18nNames *I18nNames) *UpdateChatPathReqBodyBuilder { 5157 builder.i18nNames = i18nNames 5158 builder.i18nNamesFlag = true 5159 return builder 5160 } 5161 5162 // 加 user/bot 入群权限(all_members/only_owner) 5163 // 5164 // 示例值:all_members 5165 func (builder *UpdateChatPathReqBodyBuilder) AddMemberPermission(addMemberPermission string) *UpdateChatPathReqBodyBuilder { 5166 builder.addMemberPermission = addMemberPermission 5167 builder.addMemberPermissionFlag = true 5168 return builder 5169 } 5170 5171 // 群分享权限(allowed/not_allowed) 5172 // 5173 // 示例值:allowed 5174 func (builder *UpdateChatPathReqBodyBuilder) ShareCardPermission(shareCardPermission string) *UpdateChatPathReqBodyBuilder { 5175 builder.shareCardPermission = shareCardPermission 5176 builder.shareCardPermissionFlag = true 5177 return builder 5178 } 5179 5180 // at 所有人权限(all_members/only_owner) 5181 // 5182 // 示例值:all_members 5183 func (builder *UpdateChatPathReqBodyBuilder) AtAllPermission(atAllPermission string) *UpdateChatPathReqBodyBuilder { 5184 builder.atAllPermission = atAllPermission 5185 builder.atAllPermissionFlag = true 5186 return builder 5187 } 5188 5189 // 群编辑权限(all_members/only_owner) 5190 // 5191 // 示例值:all_members 5192 func (builder *UpdateChatPathReqBodyBuilder) EditPermission(editPermission string) *UpdateChatPathReqBodyBuilder { 5193 builder.editPermission = editPermission 5194 builder.editPermissionFlag = true 5195 return builder 5196 } 5197 5198 // 新群主 ID 5199 // 5200 // 示例值:4d7a3c6g 5201 func (builder *UpdateChatPathReqBodyBuilder) OwnerId(ownerId string) *UpdateChatPathReqBodyBuilder { 5202 builder.ownerId = ownerId 5203 builder.ownerIdFlag = true 5204 return builder 5205 } 5206 5207 // 入群消息可见性(only_owner/all_members/not_anyone) 5208 // 5209 // 示例值:only_owner 5210 func (builder *UpdateChatPathReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *UpdateChatPathReqBodyBuilder { 5211 builder.joinMessageVisibility = joinMessageVisibility 5212 builder.joinMessageVisibilityFlag = true 5213 return builder 5214 } 5215 5216 // 出群消息可见性(only_owner/all_members/not_anyone) 5217 // 5218 // 示例值:only_owner 5219 func (builder *UpdateChatPathReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *UpdateChatPathReqBodyBuilder { 5220 builder.leaveMessageVisibility = leaveMessageVisibility 5221 builder.leaveMessageVisibilityFlag = true 5222 return builder 5223 } 5224 5225 // 加群审批(no_approval_required/approval_required) 5226 // 5227 // 示例值:no_approval_required 5228 func (builder *UpdateChatPathReqBodyBuilder) MembershipApproval(membershipApproval string) *UpdateChatPathReqBodyBuilder { 5229 builder.membershipApproval = membershipApproval 5230 builder.membershipApprovalFlag = true 5231 return builder 5232 } 5233 5234 func (builder *UpdateChatPathReqBodyBuilder) Build() (*UpdateChatReqBody, error) { 5235 req := &UpdateChatReqBody{} 5236 if builder.avatarFlag { 5237 req.Avatar = &builder.avatar 5238 } 5239 if builder.nameFlag { 5240 req.Name = &builder.name 5241 } 5242 if builder.descriptionFlag { 5243 req.Description = &builder.description 5244 } 5245 if builder.i18nNamesFlag { 5246 req.I18nNames = builder.i18nNames 5247 } 5248 if builder.addMemberPermissionFlag { 5249 req.AddMemberPermission = &builder.addMemberPermission 5250 } 5251 if builder.shareCardPermissionFlag { 5252 req.ShareCardPermission = &builder.shareCardPermission 5253 } 5254 if builder.atAllPermissionFlag { 5255 req.AtAllPermission = &builder.atAllPermission 5256 } 5257 if builder.editPermissionFlag { 5258 req.EditPermission = &builder.editPermission 5259 } 5260 if builder.ownerIdFlag { 5261 req.OwnerId = &builder.ownerId 5262 } 5263 if builder.joinMessageVisibilityFlag { 5264 req.JoinMessageVisibility = &builder.joinMessageVisibility 5265 } 5266 if builder.leaveMessageVisibilityFlag { 5267 req.LeaveMessageVisibility = &builder.leaveMessageVisibility 5268 } 5269 if builder.membershipApprovalFlag { 5270 req.MembershipApproval = &builder.membershipApproval 5271 } 5272 return req, nil 5273 } 5274 5275 type UpdateChatReqBuilder struct { 5276 apiReq *larkcore.ApiReq 5277 body *UpdateChatReqBody 5278 } 5279 5280 func NewUpdateChatReqBuilder() *UpdateChatReqBuilder { 5281 builder := &UpdateChatReqBuilder{} 5282 builder.apiReq = &larkcore.ApiReq{ 5283 PathParams: larkcore.PathParams{}, 5284 QueryParams: larkcore.QueryParams{}, 5285 } 5286 return builder 5287 } 5288 5289 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5290 // 5291 // 示例值:oc_a0553eda9014c201e6969b478895c230 5292 func (builder *UpdateChatReqBuilder) ChatId(chatId string) *UpdateChatReqBuilder { 5293 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5294 return builder 5295 } 5296 5297 // 此次调用中使用的用户ID的类型 5298 // 5299 // 示例值: 5300 func (builder *UpdateChatReqBuilder) UserIdType(userIdType string) *UpdateChatReqBuilder { 5301 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5302 return builder 5303 } 5304 5305 // 更新群头像、群名称、群描述、群配置、转让群主等。 5306 func (builder *UpdateChatReqBuilder) Body(body *UpdateChatReqBody) *UpdateChatReqBuilder { 5307 builder.body = body 5308 return builder 5309 } 5310 5311 func (builder *UpdateChatReqBuilder) Build() *UpdateChatReq { 5312 req := &UpdateChatReq{} 5313 req.apiReq = &larkcore.ApiReq{} 5314 req.apiReq.PathParams = builder.apiReq.PathParams 5315 req.apiReq.QueryParams = builder.apiReq.QueryParams 5316 req.apiReq.Body = builder.body 5317 return req 5318 } 5319 5320 type UpdateChatReqBody struct { 5321 Avatar *string `json:"avatar,omitempty"` // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==) 5322 Name *string `json:"name,omitempty"` // 群名称 5323 Description *string `json:"description,omitempty"` // 群描述 5324 I18nNames *I18nNames `json:"i18n_names,omitempty"` // 群国际化名称 5325 AddMemberPermission *string `json:"add_member_permission,omitempty"` // 加 user/bot 入群权限(all_members/only_owner) 5326 ShareCardPermission *string `json:"share_card_permission,omitempty"` // 群分享权限(allowed/not_allowed) 5327 AtAllPermission *string `json:"at_all_permission,omitempty"` // at 所有人权限(all_members/only_owner) 5328 EditPermission *string `json:"edit_permission,omitempty"` // 群编辑权限(all_members/only_owner) 5329 OwnerId *string `json:"owner_id,omitempty"` // 新群主 ID 5330 JoinMessageVisibility *string `json:"join_message_visibility,omitempty"` // 入群消息可见性(only_owner/all_members/not_anyone) 5331 LeaveMessageVisibility *string `json:"leave_message_visibility,omitempty"` // 出群消息可见性(only_owner/all_members/not_anyone) 5332 MembershipApproval *string `json:"membership_approval,omitempty"` // 加群审批(no_approval_required/approval_required) 5333 5334 } 5335 5336 type UpdateChatReq struct { 5337 apiReq *larkcore.ApiReq 5338 Body *UpdateChatReqBody `body:""` 5339 } 5340 5341 type UpdateChatResp struct { 5342 *larkcore.ApiResp `json:"-"` 5343 larkcore.CodeError 5344 } 5345 5346 func (resp *UpdateChatResp) Success() bool { 5347 return resp.Code == 0 5348 } 5349 5350 type GetChatAnnouncementReqBuilder struct { 5351 apiReq *larkcore.ApiReq 5352 } 5353 5354 func NewGetChatAnnouncementReqBuilder() *GetChatAnnouncementReqBuilder { 5355 builder := &GetChatAnnouncementReqBuilder{} 5356 builder.apiReq = &larkcore.ApiReq{ 5357 PathParams: larkcore.PathParams{}, 5358 QueryParams: larkcore.QueryParams{}, 5359 } 5360 return builder 5361 } 5362 5363 // 待获取公告的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5364 // 5365 // 示例值:oc_5ad11d72b830411d72b836c20 5366 func (builder *GetChatAnnouncementReqBuilder) ChatId(chatId string) *GetChatAnnouncementReqBuilder { 5367 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5368 return builder 5369 } 5370 5371 // 此次调用中使用的用户ID的类型 5372 // 5373 // 示例值:open_id 5374 func (builder *GetChatAnnouncementReqBuilder) UserIdType(userIdType string) *GetChatAnnouncementReqBuilder { 5375 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5376 return builder 5377 } 5378 5379 func (builder *GetChatAnnouncementReqBuilder) Build() *GetChatAnnouncementReq { 5380 req := &GetChatAnnouncementReq{} 5381 req.apiReq = &larkcore.ApiReq{} 5382 req.apiReq.PathParams = builder.apiReq.PathParams 5383 req.apiReq.QueryParams = builder.apiReq.QueryParams 5384 return req 5385 } 5386 5387 type GetChatAnnouncementReq struct { 5388 apiReq *larkcore.ApiReq 5389 } 5390 5391 type GetChatAnnouncementRespData struct { 5392 Content *string `json:"content,omitempty"` // 云文档序列化信息 5393 Revision *string `json:"revision,omitempty"` // 文档当前版本号 纯数字 5394 CreateTime *string `json:"create_time,omitempty"` // 文档生成的时间戳(秒) 5395 UpdateTime *string `json:"update_time,omitempty"` // 文档更新的时间戳(秒) 5396 OwnerIdType *string `json:"owner_id_type,omitempty"` // 文档所有者的 ID 类型;;- 如果所有者是用户,则与查询参数中的user_id_type 相同;取值为`open_id` `user_id` `union_id` 其中之一,不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);- 如果所有者是机器人,为机器人应用的 `app_id`,详情参见 [获取应用身份访问凭证](/ssl:ttdoc/ukTMukTMukTM/ukDNz4SO0MjL5QzM/g) 5397 OwnerId *string `json:"owner_id,omitempty"` // 文档所有者 ID,ID 值与owner_id_type 中的ID类型对应 5398 ModifierIdType *string `json:"modifier_id_type,omitempty"` // 文档最新修改者 id 类型;; - 如果修改者是用户,则与查询参数中的user_id_type 相同;取值为`open_id` `user_id` `union_id` 其中之一,不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);- 如果修改者是机器人,为机器人应用的 `app_id`,详情参见 [获取应用身份访问凭证](/ssl:ttdoc/ukTMukTMukTM/ukDNz4SO0MjL5QzM/g) 5399 ModifierId *string `json:"modifier_id,omitempty"` // 文档最新修改者 ID,ID 值与modifier_id_type 中的ID类型对应 5400 } 5401 5402 type GetChatAnnouncementResp struct { 5403 *larkcore.ApiResp `json:"-"` 5404 larkcore.CodeError 5405 Data *GetChatAnnouncementRespData `json:"data"` // 业务数据 5406 } 5407 5408 func (resp *GetChatAnnouncementResp) Success() bool { 5409 return resp.Code == 0 5410 } 5411 5412 type PatchChatAnnouncementReqBodyBuilder struct { 5413 revision string // 文档当前版本号 int64 类型,get 接口会返回 5414 revisionFlag bool 5415 requests []string // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同 5416 requestsFlag bool 5417 } 5418 5419 func NewPatchChatAnnouncementReqBodyBuilder() *PatchChatAnnouncementReqBodyBuilder { 5420 builder := &PatchChatAnnouncementReqBodyBuilder{} 5421 return builder 5422 } 5423 5424 // 文档当前版本号 int64 类型,get 接口会返回 5425 // 5426 //示例值:12 5427 func (builder *PatchChatAnnouncementReqBodyBuilder) Revision(revision string) *PatchChatAnnouncementReqBodyBuilder { 5428 builder.revision = revision 5429 builder.revisionFlag = true 5430 return builder 5431 } 5432 5433 // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同 5434 // 5435 //示例值:xxx 5436 func (builder *PatchChatAnnouncementReqBodyBuilder) Requests(requests []string) *PatchChatAnnouncementReqBodyBuilder { 5437 builder.requests = requests 5438 builder.requestsFlag = true 5439 return builder 5440 } 5441 5442 func (builder *PatchChatAnnouncementReqBodyBuilder) Build() *PatchChatAnnouncementReqBody { 5443 req := &PatchChatAnnouncementReqBody{} 5444 if builder.revisionFlag { 5445 req.Revision = &builder.revision 5446 } 5447 if builder.requestsFlag { 5448 req.Requests = builder.requests 5449 } 5450 return req 5451 } 5452 5453 type PatchChatAnnouncementPathReqBodyBuilder struct { 5454 revision string // 文档当前版本号 int64 类型,get 接口会返回 5455 revisionFlag bool 5456 requests []string // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同 5457 requestsFlag bool 5458 } 5459 5460 func NewPatchChatAnnouncementPathReqBodyBuilder() *PatchChatAnnouncementPathReqBodyBuilder { 5461 builder := &PatchChatAnnouncementPathReqBodyBuilder{} 5462 return builder 5463 } 5464 5465 // 文档当前版本号 int64 类型,get 接口会返回 5466 // 5467 // 示例值:12 5468 func (builder *PatchChatAnnouncementPathReqBodyBuilder) Revision(revision string) *PatchChatAnnouncementPathReqBodyBuilder { 5469 builder.revision = revision 5470 builder.revisionFlag = true 5471 return builder 5472 } 5473 5474 // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同 5475 // 5476 // 示例值:xxx 5477 func (builder *PatchChatAnnouncementPathReqBodyBuilder) Requests(requests []string) *PatchChatAnnouncementPathReqBodyBuilder { 5478 builder.requests = requests 5479 builder.requestsFlag = true 5480 return builder 5481 } 5482 5483 func (builder *PatchChatAnnouncementPathReqBodyBuilder) Build() (*PatchChatAnnouncementReqBody, error) { 5484 req := &PatchChatAnnouncementReqBody{} 5485 if builder.revisionFlag { 5486 req.Revision = &builder.revision 5487 } 5488 if builder.requestsFlag { 5489 req.Requests = builder.requests 5490 } 5491 return req, nil 5492 } 5493 5494 type PatchChatAnnouncementReqBuilder struct { 5495 apiReq *larkcore.ApiReq 5496 body *PatchChatAnnouncementReqBody 5497 } 5498 5499 func NewPatchChatAnnouncementReqBuilder() *PatchChatAnnouncementReqBuilder { 5500 builder := &PatchChatAnnouncementReqBuilder{} 5501 builder.apiReq = &larkcore.ApiReq{ 5502 PathParams: larkcore.PathParams{}, 5503 QueryParams: larkcore.QueryParams{}, 5504 } 5505 return builder 5506 } 5507 5508 // 待修改公告的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5509 // 5510 // 示例值:oc_5ad11d72b830411d72b836c20 5511 func (builder *PatchChatAnnouncementReqBuilder) ChatId(chatId string) *PatchChatAnnouncementReqBuilder { 5512 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5513 return builder 5514 } 5515 5516 // 更新会话中的群公告信息,更新公告信息的格式和更新[云文档](https://open.feishu.cn/document/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同。 5517 func (builder *PatchChatAnnouncementReqBuilder) Body(body *PatchChatAnnouncementReqBody) *PatchChatAnnouncementReqBuilder { 5518 builder.body = body 5519 return builder 5520 } 5521 5522 func (builder *PatchChatAnnouncementReqBuilder) Build() *PatchChatAnnouncementReq { 5523 req := &PatchChatAnnouncementReq{} 5524 req.apiReq = &larkcore.ApiReq{} 5525 req.apiReq.PathParams = builder.apiReq.PathParams 5526 req.apiReq.Body = builder.body 5527 return req 5528 } 5529 5530 type PatchChatAnnouncementReqBody struct { 5531 Revision *string `json:"revision,omitempty"` // 文档当前版本号 int64 类型,get 接口会返回 5532 Requests []string `json:"requests,omitempty"` // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同 5533 } 5534 5535 type PatchChatAnnouncementReq struct { 5536 apiReq *larkcore.ApiReq 5537 Body *PatchChatAnnouncementReqBody `body:""` 5538 } 5539 5540 type PatchChatAnnouncementResp struct { 5541 *larkcore.ApiResp `json:"-"` 5542 larkcore.CodeError 5543 } 5544 5545 func (resp *PatchChatAnnouncementResp) Success() bool { 5546 return resp.Code == 0 5547 } 5548 5549 type AddManagersChatManagersReqBodyBuilder struct { 5550 managerIds []string // 要增加的 manager_id 5551 managerIdsFlag bool 5552 } 5553 5554 func NewAddManagersChatManagersReqBodyBuilder() *AddManagersChatManagersReqBodyBuilder { 5555 builder := &AddManagersChatManagersReqBodyBuilder{} 5556 return builder 5557 } 5558 5559 // 要增加的 manager_id 5560 // 5561 //示例值:["ou_9204a37300b3700d61effaa439f34295"] 5562 func (builder *AddManagersChatManagersReqBodyBuilder) ManagerIds(managerIds []string) *AddManagersChatManagersReqBodyBuilder { 5563 builder.managerIds = managerIds 5564 builder.managerIdsFlag = true 5565 return builder 5566 } 5567 5568 func (builder *AddManagersChatManagersReqBodyBuilder) Build() *AddManagersChatManagersReqBody { 5569 req := &AddManagersChatManagersReqBody{} 5570 if builder.managerIdsFlag { 5571 req.ManagerIds = builder.managerIds 5572 } 5573 return req 5574 } 5575 5576 type AddManagersChatManagersPathReqBodyBuilder struct { 5577 managerIds []string // 要增加的 manager_id 5578 managerIdsFlag bool 5579 } 5580 5581 func NewAddManagersChatManagersPathReqBodyBuilder() *AddManagersChatManagersPathReqBodyBuilder { 5582 builder := &AddManagersChatManagersPathReqBodyBuilder{} 5583 return builder 5584 } 5585 5586 // 要增加的 manager_id 5587 // 5588 // 示例值:["ou_9204a37300b3700d61effaa439f34295"] 5589 func (builder *AddManagersChatManagersPathReqBodyBuilder) ManagerIds(managerIds []string) *AddManagersChatManagersPathReqBodyBuilder { 5590 builder.managerIds = managerIds 5591 builder.managerIdsFlag = true 5592 return builder 5593 } 5594 5595 func (builder *AddManagersChatManagersPathReqBodyBuilder) Build() (*AddManagersChatManagersReqBody, error) { 5596 req := &AddManagersChatManagersReqBody{} 5597 if builder.managerIdsFlag { 5598 req.ManagerIds = builder.managerIds 5599 } 5600 return req, nil 5601 } 5602 5603 type AddManagersChatManagersReqBuilder struct { 5604 apiReq *larkcore.ApiReq 5605 body *AddManagersChatManagersReqBody 5606 } 5607 5608 func NewAddManagersChatManagersReqBuilder() *AddManagersChatManagersReqBuilder { 5609 builder := &AddManagersChatManagersReqBuilder{} 5610 builder.apiReq = &larkcore.ApiReq{ 5611 PathParams: larkcore.PathParams{}, 5612 QueryParams: larkcore.QueryParams{}, 5613 } 5614 return builder 5615 } 5616 5617 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5618 // 5619 // 示例值:oc_a0553eda9014c201e6969b478895c230 5620 func (builder *AddManagersChatManagersReqBuilder) ChatId(chatId string) *AddManagersChatManagersReqBuilder { 5621 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5622 return builder 5623 } 5624 5625 // 群成员 id 类型 open_id/user_id/union_id/app_id 5626 // 5627 // 示例值:open_id 5628 func (builder *AddManagersChatManagersReqBuilder) MemberIdType(memberIdType string) *AddManagersChatManagersReqBuilder { 5629 builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType)) 5630 return builder 5631 } 5632 5633 // 将用户或机器人指定为群管理员。 5634 func (builder *AddManagersChatManagersReqBuilder) Body(body *AddManagersChatManagersReqBody) *AddManagersChatManagersReqBuilder { 5635 builder.body = body 5636 return builder 5637 } 5638 5639 func (builder *AddManagersChatManagersReqBuilder) Build() *AddManagersChatManagersReq { 5640 req := &AddManagersChatManagersReq{} 5641 req.apiReq = &larkcore.ApiReq{} 5642 req.apiReq.PathParams = builder.apiReq.PathParams 5643 req.apiReq.QueryParams = builder.apiReq.QueryParams 5644 req.apiReq.Body = builder.body 5645 return req 5646 } 5647 5648 type AddManagersChatManagersReqBody struct { 5649 ManagerIds []string `json:"manager_ids,omitempty"` // 要增加的 manager_id 5650 } 5651 5652 type AddManagersChatManagersReq struct { 5653 apiReq *larkcore.ApiReq 5654 Body *AddManagersChatManagersReqBody `body:""` 5655 } 5656 5657 type AddManagersChatManagersRespData struct { 5658 ChatManagers []string `json:"chat_managers,omitempty"` // 群目前用户类型的管理员 id 5659 ChatBotManagers []string `json:"chat_bot_managers,omitempty"` // 群目前机器人类型的管理员 id 5660 } 5661 5662 type AddManagersChatManagersResp struct { 5663 *larkcore.ApiResp `json:"-"` 5664 larkcore.CodeError 5665 Data *AddManagersChatManagersRespData `json:"data"` // 业务数据 5666 } 5667 5668 func (resp *AddManagersChatManagersResp) Success() bool { 5669 return resp.Code == 0 5670 } 5671 5672 type DeleteManagersChatManagersReqBodyBuilder struct { 5673 managerIds []string // 要删除的 manager_id 5674 managerIdsFlag bool 5675 } 5676 5677 func NewDeleteManagersChatManagersReqBodyBuilder() *DeleteManagersChatManagersReqBodyBuilder { 5678 builder := &DeleteManagersChatManagersReqBodyBuilder{} 5679 return builder 5680 } 5681 5682 // 要删除的 manager_id 5683 // 5684 //示例值:["ou_9204a37300b3700d61effaa439f34295"] 5685 func (builder *DeleteManagersChatManagersReqBodyBuilder) ManagerIds(managerIds []string) *DeleteManagersChatManagersReqBodyBuilder { 5686 builder.managerIds = managerIds 5687 builder.managerIdsFlag = true 5688 return builder 5689 } 5690 5691 func (builder *DeleteManagersChatManagersReqBodyBuilder) Build() *DeleteManagersChatManagersReqBody { 5692 req := &DeleteManagersChatManagersReqBody{} 5693 if builder.managerIdsFlag { 5694 req.ManagerIds = builder.managerIds 5695 } 5696 return req 5697 } 5698 5699 type DeleteManagersChatManagersPathReqBodyBuilder struct { 5700 managerIds []string // 要删除的 manager_id 5701 managerIdsFlag bool 5702 } 5703 5704 func NewDeleteManagersChatManagersPathReqBodyBuilder() *DeleteManagersChatManagersPathReqBodyBuilder { 5705 builder := &DeleteManagersChatManagersPathReqBodyBuilder{} 5706 return builder 5707 } 5708 5709 // 要删除的 manager_id 5710 // 5711 // 示例值:["ou_9204a37300b3700d61effaa439f34295"] 5712 func (builder *DeleteManagersChatManagersPathReqBodyBuilder) ManagerIds(managerIds []string) *DeleteManagersChatManagersPathReqBodyBuilder { 5713 builder.managerIds = managerIds 5714 builder.managerIdsFlag = true 5715 return builder 5716 } 5717 5718 func (builder *DeleteManagersChatManagersPathReqBodyBuilder) Build() (*DeleteManagersChatManagersReqBody, error) { 5719 req := &DeleteManagersChatManagersReqBody{} 5720 if builder.managerIdsFlag { 5721 req.ManagerIds = builder.managerIds 5722 } 5723 return req, nil 5724 } 5725 5726 type DeleteManagersChatManagersReqBuilder struct { 5727 apiReq *larkcore.ApiReq 5728 body *DeleteManagersChatManagersReqBody 5729 } 5730 5731 func NewDeleteManagersChatManagersReqBuilder() *DeleteManagersChatManagersReqBuilder { 5732 builder := &DeleteManagersChatManagersReqBuilder{} 5733 builder.apiReq = &larkcore.ApiReq{ 5734 PathParams: larkcore.PathParams{}, 5735 QueryParams: larkcore.QueryParams{}, 5736 } 5737 return builder 5738 } 5739 5740 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5741 // 5742 // 示例值:oc_a0553eda9014c201e6969b478895c230 5743 func (builder *DeleteManagersChatManagersReqBuilder) ChatId(chatId string) *DeleteManagersChatManagersReqBuilder { 5744 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5745 return builder 5746 } 5747 5748 // 群成员 id 类型 open_id/user_id/union_id/app_id 5749 // 5750 // 示例值:open_id 5751 func (builder *DeleteManagersChatManagersReqBuilder) MemberIdType(memberIdType string) *DeleteManagersChatManagersReqBuilder { 5752 builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType)) 5753 return builder 5754 } 5755 5756 // 删除指定的群管理员(用户或机器人) 5757 func (builder *DeleteManagersChatManagersReqBuilder) Body(body *DeleteManagersChatManagersReqBody) *DeleteManagersChatManagersReqBuilder { 5758 builder.body = body 5759 return builder 5760 } 5761 5762 func (builder *DeleteManagersChatManagersReqBuilder) Build() *DeleteManagersChatManagersReq { 5763 req := &DeleteManagersChatManagersReq{} 5764 req.apiReq = &larkcore.ApiReq{} 5765 req.apiReq.PathParams = builder.apiReq.PathParams 5766 req.apiReq.QueryParams = builder.apiReq.QueryParams 5767 req.apiReq.Body = builder.body 5768 return req 5769 } 5770 5771 type DeleteManagersChatManagersReqBody struct { 5772 ManagerIds []string `json:"manager_ids,omitempty"` // 要删除的 manager_id 5773 } 5774 5775 type DeleteManagersChatManagersReq struct { 5776 apiReq *larkcore.ApiReq 5777 Body *DeleteManagersChatManagersReqBody `body:""` 5778 } 5779 5780 type DeleteManagersChatManagersRespData struct { 5781 ChatManagers []string `json:"chat_managers,omitempty"` // 群目前用户类型的管理员 id 5782 ChatBotManagers []string `json:"chat_bot_managers,omitempty"` // 群目前机器人类型的管理员 id 5783 } 5784 5785 type DeleteManagersChatManagersResp struct { 5786 *larkcore.ApiResp `json:"-"` 5787 larkcore.CodeError 5788 Data *DeleteManagersChatManagersRespData `json:"data"` // 业务数据 5789 } 5790 5791 func (resp *DeleteManagersChatManagersResp) Success() bool { 5792 return resp.Code == 0 5793 } 5794 5795 type CreateChatMembersReqBodyBuilder struct { 5796 idList []string // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人 5797 idListFlag bool 5798 } 5799 5800 func NewCreateChatMembersReqBodyBuilder() *CreateChatMembersReqBodyBuilder { 5801 builder := &CreateChatMembersReqBodyBuilder{} 5802 return builder 5803 } 5804 5805 // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人 5806 // 5807 //示例值:["ou_9204a37300b3700d61effaa439f34295"] 5808 func (builder *CreateChatMembersReqBodyBuilder) IdList(idList []string) *CreateChatMembersReqBodyBuilder { 5809 builder.idList = idList 5810 builder.idListFlag = true 5811 return builder 5812 } 5813 5814 func (builder *CreateChatMembersReqBodyBuilder) Build() *CreateChatMembersReqBody { 5815 req := &CreateChatMembersReqBody{} 5816 if builder.idListFlag { 5817 req.IdList = builder.idList 5818 } 5819 return req 5820 } 5821 5822 type CreateChatMembersPathReqBodyBuilder struct { 5823 idList []string // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人 5824 idListFlag bool 5825 } 5826 5827 func NewCreateChatMembersPathReqBodyBuilder() *CreateChatMembersPathReqBodyBuilder { 5828 builder := &CreateChatMembersPathReqBodyBuilder{} 5829 return builder 5830 } 5831 5832 // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人 5833 // 5834 // 示例值:["ou_9204a37300b3700d61effaa439f34295"] 5835 func (builder *CreateChatMembersPathReqBodyBuilder) IdList(idList []string) *CreateChatMembersPathReqBodyBuilder { 5836 builder.idList = idList 5837 builder.idListFlag = true 5838 return builder 5839 } 5840 5841 func (builder *CreateChatMembersPathReqBodyBuilder) Build() (*CreateChatMembersReqBody, error) { 5842 req := &CreateChatMembersReqBody{} 5843 if builder.idListFlag { 5844 req.IdList = builder.idList 5845 } 5846 return req, nil 5847 } 5848 5849 type CreateChatMembersReqBuilder struct { 5850 apiReq *larkcore.ApiReq 5851 body *CreateChatMembersReqBody 5852 } 5853 5854 func NewCreateChatMembersReqBuilder() *CreateChatMembersReqBuilder { 5855 builder := &CreateChatMembersReqBuilder{} 5856 builder.apiReq = &larkcore.ApiReq{ 5857 PathParams: larkcore.PathParams{}, 5858 QueryParams: larkcore.QueryParams{}, 5859 } 5860 return builder 5861 } 5862 5863 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5864 // 5865 // 示例值:oc_a0553eda9014c201e6969b478895c230 5866 func (builder *CreateChatMembersReqBuilder) ChatId(chatId string) *CreateChatMembersReqBuilder { 5867 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5868 return builder 5869 } 5870 5871 // 进群成员 id 类型 open_id/user_id/union_id/app_id;;<b>注意:</b>拉机器人入群请使用 ==app_id== 5872 // 5873 // 示例值:open_id 5874 func (builder *CreateChatMembersReqBuilder) MemberIdType(memberIdType string) *CreateChatMembersReqBuilder { 5875 builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType)) 5876 return builder 5877 } 5878 5879 // 出现不可用ID后的处理方式 0/1/2 5880 // 5881 // 示例值:0 5882 func (builder *CreateChatMembersReqBuilder) SucceedType(succeedType int) *CreateChatMembersReqBuilder { 5883 builder.apiReq.QueryParams.Set("succeed_type", fmt.Sprint(succeedType)) 5884 return builder 5885 } 5886 5887 // 将用户或机器人拉入群聊。 5888 func (builder *CreateChatMembersReqBuilder) Body(body *CreateChatMembersReqBody) *CreateChatMembersReqBuilder { 5889 builder.body = body 5890 return builder 5891 } 5892 5893 func (builder *CreateChatMembersReqBuilder) Build() *CreateChatMembersReq { 5894 req := &CreateChatMembersReq{} 5895 req.apiReq = &larkcore.ApiReq{} 5896 req.apiReq.PathParams = builder.apiReq.PathParams 5897 req.apiReq.QueryParams = builder.apiReq.QueryParams 5898 req.apiReq.Body = builder.body 5899 return req 5900 } 5901 5902 type CreateChatMembersReqBody struct { 5903 IdList []string `json:"id_list,omitempty"` // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人 5904 } 5905 5906 type CreateChatMembersReq struct { 5907 apiReq *larkcore.ApiReq 5908 Body *CreateChatMembersReqBody `body:""` 5909 } 5910 5911 type CreateChatMembersRespData struct { 5912 InvalidIdList []string `json:"invalid_id_list,omitempty"` // 无效成员列表 5913 NotExistedIdList []string `json:"not_existed_id_list,omitempty"` // ID不存在的成员列表 5914 } 5915 5916 type CreateChatMembersResp struct { 5917 *larkcore.ApiResp `json:"-"` 5918 larkcore.CodeError 5919 Data *CreateChatMembersRespData `json:"data"` // 业务数据 5920 } 5921 5922 func (resp *CreateChatMembersResp) Success() bool { 5923 return resp.Code == 0 5924 } 5925 5926 type DeleteChatMembersReqBodyBuilder struct { 5927 idList []string // 成员列表 5928 idListFlag bool 5929 } 5930 5931 func NewDeleteChatMembersReqBodyBuilder() *DeleteChatMembersReqBodyBuilder { 5932 builder := &DeleteChatMembersReqBodyBuilder{} 5933 return builder 5934 } 5935 5936 // 成员列表 5937 // 5938 //示例值:["ou_9204a37300b3700d61effaa439f34295"] 5939 func (builder *DeleteChatMembersReqBodyBuilder) IdList(idList []string) *DeleteChatMembersReqBodyBuilder { 5940 builder.idList = idList 5941 builder.idListFlag = true 5942 return builder 5943 } 5944 5945 func (builder *DeleteChatMembersReqBodyBuilder) Build() *DeleteChatMembersReqBody { 5946 req := &DeleteChatMembersReqBody{} 5947 if builder.idListFlag { 5948 req.IdList = builder.idList 5949 } 5950 return req 5951 } 5952 5953 type DeleteChatMembersPathReqBodyBuilder struct { 5954 idList []string // 成员列表 5955 idListFlag bool 5956 } 5957 5958 func NewDeleteChatMembersPathReqBodyBuilder() *DeleteChatMembersPathReqBodyBuilder { 5959 builder := &DeleteChatMembersPathReqBodyBuilder{} 5960 return builder 5961 } 5962 5963 // 成员列表 5964 // 5965 // 示例值:["ou_9204a37300b3700d61effaa439f34295"] 5966 func (builder *DeleteChatMembersPathReqBodyBuilder) IdList(idList []string) *DeleteChatMembersPathReqBodyBuilder { 5967 builder.idList = idList 5968 builder.idListFlag = true 5969 return builder 5970 } 5971 5972 func (builder *DeleteChatMembersPathReqBodyBuilder) Build() (*DeleteChatMembersReqBody, error) { 5973 req := &DeleteChatMembersReqBody{} 5974 if builder.idListFlag { 5975 req.IdList = builder.idList 5976 } 5977 return req, nil 5978 } 5979 5980 type DeleteChatMembersReqBuilder struct { 5981 apiReq *larkcore.ApiReq 5982 body *DeleteChatMembersReqBody 5983 } 5984 5985 func NewDeleteChatMembersReqBuilder() *DeleteChatMembersReqBuilder { 5986 builder := &DeleteChatMembersReqBuilder{} 5987 builder.apiReq = &larkcore.ApiReq{ 5988 PathParams: larkcore.PathParams{}, 5989 QueryParams: larkcore.QueryParams{}, 5990 } 5991 return builder 5992 } 5993 5994 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 5995 // 5996 // 示例值:oc_a0553eda9014c201e6969b478895c230 5997 func (builder *DeleteChatMembersReqBuilder) ChatId(chatId string) *DeleteChatMembersReqBuilder { 5998 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 5999 return builder 6000 } 6001 6002 // 出群成员 id 类型 open_id/user_id/union_id/app_id 6003 // 6004 // 示例值:open_id 6005 func (builder *DeleteChatMembersReqBuilder) MemberIdType(memberIdType string) *DeleteChatMembersReqBuilder { 6006 builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType)) 6007 return builder 6008 } 6009 6010 // 将用户或机器人移出群聊。 6011 func (builder *DeleteChatMembersReqBuilder) Body(body *DeleteChatMembersReqBody) *DeleteChatMembersReqBuilder { 6012 builder.body = body 6013 return builder 6014 } 6015 6016 func (builder *DeleteChatMembersReqBuilder) Build() *DeleteChatMembersReq { 6017 req := &DeleteChatMembersReq{} 6018 req.apiReq = &larkcore.ApiReq{} 6019 req.apiReq.PathParams = builder.apiReq.PathParams 6020 req.apiReq.QueryParams = builder.apiReq.QueryParams 6021 req.apiReq.Body = builder.body 6022 return req 6023 } 6024 6025 type DeleteChatMembersReqBody struct { 6026 IdList []string `json:"id_list,omitempty"` // 成员列表 6027 } 6028 6029 type DeleteChatMembersReq struct { 6030 apiReq *larkcore.ApiReq 6031 Body *DeleteChatMembersReqBody `body:""` 6032 } 6033 6034 type DeleteChatMembersRespData struct { 6035 InvalidIdList []string `json:"invalid_id_list,omitempty"` // 无效成员列表 6036 } 6037 6038 type DeleteChatMembersResp struct { 6039 *larkcore.ApiResp `json:"-"` 6040 larkcore.CodeError 6041 Data *DeleteChatMembersRespData `json:"data"` // 业务数据 6042 } 6043 6044 func (resp *DeleteChatMembersResp) Success() bool { 6045 return resp.Code == 0 6046 } 6047 6048 type GetChatMembersReqBuilder struct { 6049 apiReq *larkcore.ApiReq 6050 limit int // 最大返回多少记录,当使用迭代器访问时才有效 6051 } 6052 6053 func NewGetChatMembersReqBuilder() *GetChatMembersReqBuilder { 6054 builder := &GetChatMembersReqBuilder{} 6055 builder.apiReq = &larkcore.ApiReq{ 6056 PathParams: larkcore.PathParams{}, 6057 QueryParams: larkcore.QueryParams{}, 6058 } 6059 return builder 6060 } 6061 6062 // 最大返回多少记录,当使用迭代器访问时才有效 6063 func (builder *GetChatMembersReqBuilder) Limit(limit int) *GetChatMembersReqBuilder { 6064 builder.limit = limit 6065 return builder 6066 } 6067 6068 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 6069 // 6070 // 示例值:oc_a0553eda9014c201e6969b478895c230 6071 func (builder *GetChatMembersReqBuilder) ChatId(chatId string) *GetChatMembersReqBuilder { 6072 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6073 return builder 6074 } 6075 6076 // 群成员 用户 ID 类型,详情参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction) 6077 // 6078 // 示例值:open_id 6079 func (builder *GetChatMembersReqBuilder) MemberIdType(memberIdType string) *GetChatMembersReqBuilder { 6080 builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType)) 6081 return builder 6082 } 6083 6084 // 6085 // 6086 // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ== 6087 func (builder *GetChatMembersReqBuilder) PageToken(pageToken string) *GetChatMembersReqBuilder { 6088 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 6089 return builder 6090 } 6091 6092 // 6093 // 6094 // 示例值:10 6095 func (builder *GetChatMembersReqBuilder) PageSize(pageSize int) *GetChatMembersReqBuilder { 6096 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 6097 return builder 6098 } 6099 6100 func (builder *GetChatMembersReqBuilder) Build() *GetChatMembersReq { 6101 req := &GetChatMembersReq{} 6102 req.apiReq = &larkcore.ApiReq{} 6103 req.Limit = builder.limit 6104 req.apiReq.PathParams = builder.apiReq.PathParams 6105 req.apiReq.QueryParams = builder.apiReq.QueryParams 6106 return req 6107 } 6108 6109 type GetChatMembersReq struct { 6110 apiReq *larkcore.ApiReq 6111 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 6112 6113 } 6114 6115 type GetChatMembersRespData struct { 6116 Items []*ListMember `json:"items,omitempty"` // 成员列表 6117 PageToken *string `json:"page_token,omitempty"` // 6118 HasMore *bool `json:"has_more,omitempty"` // 6119 MemberTotal *int `json:"member_total,omitempty"` // 成员总数 6120 } 6121 6122 type GetChatMembersResp struct { 6123 *larkcore.ApiResp `json:"-"` 6124 larkcore.CodeError 6125 Data *GetChatMembersRespData `json:"data"` // 业务数据 6126 } 6127 6128 func (resp *GetChatMembersResp) Success() bool { 6129 return resp.Code == 0 6130 } 6131 6132 type IsInChatChatMembersReqBuilder struct { 6133 apiReq *larkcore.ApiReq 6134 } 6135 6136 func NewIsInChatChatMembersReqBuilder() *IsInChatChatMembersReqBuilder { 6137 builder := &IsInChatChatMembersReqBuilder{} 6138 builder.apiReq = &larkcore.ApiReq{ 6139 PathParams: larkcore.PathParams{}, 6140 QueryParams: larkcore.QueryParams{}, 6141 } 6142 return builder 6143 } 6144 6145 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 6146 // 6147 // 示例值:oc_a0553eda9014c201e6969b478895c230 6148 func (builder *IsInChatChatMembersReqBuilder) ChatId(chatId string) *IsInChatChatMembersReqBuilder { 6149 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6150 return builder 6151 } 6152 6153 func (builder *IsInChatChatMembersReqBuilder) Build() *IsInChatChatMembersReq { 6154 req := &IsInChatChatMembersReq{} 6155 req.apiReq = &larkcore.ApiReq{} 6156 req.apiReq.PathParams = builder.apiReq.PathParams 6157 return req 6158 } 6159 6160 type IsInChatChatMembersReq struct { 6161 apiReq *larkcore.ApiReq 6162 } 6163 6164 type IsInChatChatMembersRespData struct { 6165 IsInChat *bool `json:"is_in_chat,omitempty"` // 用户或者机器人是否在群中 6166 } 6167 6168 type IsInChatChatMembersResp struct { 6169 *larkcore.ApiResp `json:"-"` 6170 larkcore.CodeError 6171 Data *IsInChatChatMembersRespData `json:"data"` // 业务数据 6172 } 6173 6174 func (resp *IsInChatChatMembersResp) Success() bool { 6175 return resp.Code == 0 6176 } 6177 6178 type MeJoinChatMembersReqBuilder struct { 6179 apiReq *larkcore.ApiReq 6180 } 6181 6182 func NewMeJoinChatMembersReqBuilder() *MeJoinChatMembersReqBuilder { 6183 builder := &MeJoinChatMembersReqBuilder{} 6184 builder.apiReq = &larkcore.ApiReq{ 6185 PathParams: larkcore.PathParams{}, 6186 QueryParams: larkcore.QueryParams{}, 6187 } 6188 return builder 6189 } 6190 6191 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 6192 // 6193 // 示例值:oc_a0553eda9014c201e6969b478895c230 6194 func (builder *MeJoinChatMembersReqBuilder) ChatId(chatId string) *MeJoinChatMembersReqBuilder { 6195 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6196 return builder 6197 } 6198 6199 func (builder *MeJoinChatMembersReqBuilder) Build() *MeJoinChatMembersReq { 6200 req := &MeJoinChatMembersReq{} 6201 req.apiReq = &larkcore.ApiReq{} 6202 req.apiReq.PathParams = builder.apiReq.PathParams 6203 return req 6204 } 6205 6206 type MeJoinChatMembersReq struct { 6207 apiReq *larkcore.ApiReq 6208 } 6209 6210 type MeJoinChatMembersResp struct { 6211 *larkcore.ApiResp `json:"-"` 6212 larkcore.CodeError 6213 } 6214 6215 func (resp *MeJoinChatMembersResp) Success() bool { 6216 return resp.Code == 0 6217 } 6218 6219 type GetChatModerationReqBuilder struct { 6220 apiReq *larkcore.ApiReq 6221 limit int // 最大返回多少记录,当使用迭代器访问时才有效 6222 } 6223 6224 func NewGetChatModerationReqBuilder() *GetChatModerationReqBuilder { 6225 builder := &GetChatModerationReqBuilder{} 6226 builder.apiReq = &larkcore.ApiReq{ 6227 PathParams: larkcore.PathParams{}, 6228 QueryParams: larkcore.QueryParams{}, 6229 } 6230 return builder 6231 } 6232 6233 // 最大返回多少记录,当使用迭代器访问时才有效 6234 func (builder *GetChatModerationReqBuilder) Limit(limit int) *GetChatModerationReqBuilder { 6235 builder.limit = limit 6236 return builder 6237 } 6238 6239 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 6240 // 6241 // 示例值:oc_a0553eda9014c201e6969b478895c230 6242 func (builder *GetChatModerationReqBuilder) ChatId(chatId string) *GetChatModerationReqBuilder { 6243 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6244 return builder 6245 } 6246 6247 // 此次调用中使用的用户ID的类型 6248 // 6249 // 示例值: 6250 func (builder *GetChatModerationReqBuilder) UserIdType(userIdType string) *GetChatModerationReqBuilder { 6251 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 6252 return builder 6253 } 6254 6255 // 6256 // 6257 // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ== 6258 func (builder *GetChatModerationReqBuilder) PageToken(pageToken string) *GetChatModerationReqBuilder { 6259 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 6260 return builder 6261 } 6262 6263 // 6264 // 6265 // 示例值:10 6266 func (builder *GetChatModerationReqBuilder) PageSize(pageSize int) *GetChatModerationReqBuilder { 6267 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 6268 return builder 6269 } 6270 6271 func (builder *GetChatModerationReqBuilder) Build() *GetChatModerationReq { 6272 req := &GetChatModerationReq{} 6273 req.apiReq = &larkcore.ApiReq{} 6274 req.Limit = builder.limit 6275 req.apiReq.PathParams = builder.apiReq.PathParams 6276 req.apiReq.QueryParams = builder.apiReq.QueryParams 6277 return req 6278 } 6279 6280 type GetChatModerationReq struct { 6281 apiReq *larkcore.ApiReq 6282 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 6283 6284 } 6285 6286 type GetChatModerationRespData struct { 6287 ModerationSetting *string `json:"moderation_setting,omitempty"` // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式) 6288 PageToken *string `json:"page_token,omitempty"` // 6289 HasMore *bool `json:"has_more,omitempty"` // 6290 Items []*ListModerator `json:"items,omitempty"` // 可发言用户列表 6291 } 6292 6293 type GetChatModerationResp struct { 6294 *larkcore.ApiResp `json:"-"` 6295 larkcore.CodeError 6296 Data *GetChatModerationRespData `json:"data"` // 业务数据 6297 } 6298 6299 func (resp *GetChatModerationResp) Success() bool { 6300 return resp.Code == 0 6301 } 6302 6303 type UpdateChatModerationReqBodyBuilder struct { 6304 moderationSetting string // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式) 6305 moderationSettingFlag bool 6306 moderatorAddedList []string // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户) 6307 moderatorAddedListFlag bool 6308 moderatorRemovedList []string // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户) 6309 moderatorRemovedListFlag bool 6310 } 6311 6312 func NewUpdateChatModerationReqBodyBuilder() *UpdateChatModerationReqBodyBuilder { 6313 builder := &UpdateChatModerationReqBodyBuilder{} 6314 return builder 6315 } 6316 6317 // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式) 6318 // 6319 //示例值:moderator_list 6320 func (builder *UpdateChatModerationReqBodyBuilder) ModerationSetting(moderationSetting string) *UpdateChatModerationReqBodyBuilder { 6321 builder.moderationSetting = moderationSetting 6322 builder.moderationSettingFlag = true 6323 return builder 6324 } 6325 6326 // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户) 6327 // 6328 //示例值:["4d7a3c6g"] 6329 func (builder *UpdateChatModerationReqBodyBuilder) ModeratorAddedList(moderatorAddedList []string) *UpdateChatModerationReqBodyBuilder { 6330 builder.moderatorAddedList = moderatorAddedList 6331 builder.moderatorAddedListFlag = true 6332 return builder 6333 } 6334 6335 // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户) 6336 // 6337 //示例值:["4d7a3ih6"] 6338 func (builder *UpdateChatModerationReqBodyBuilder) ModeratorRemovedList(moderatorRemovedList []string) *UpdateChatModerationReqBodyBuilder { 6339 builder.moderatorRemovedList = moderatorRemovedList 6340 builder.moderatorRemovedListFlag = true 6341 return builder 6342 } 6343 6344 func (builder *UpdateChatModerationReqBodyBuilder) Build() *UpdateChatModerationReqBody { 6345 req := &UpdateChatModerationReqBody{} 6346 if builder.moderationSettingFlag { 6347 req.ModerationSetting = &builder.moderationSetting 6348 } 6349 if builder.moderatorAddedListFlag { 6350 req.ModeratorAddedList = builder.moderatorAddedList 6351 } 6352 if builder.moderatorRemovedListFlag { 6353 req.ModeratorRemovedList = builder.moderatorRemovedList 6354 } 6355 return req 6356 } 6357 6358 type UpdateChatModerationPathReqBodyBuilder struct { 6359 moderationSetting string // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式) 6360 moderationSettingFlag bool 6361 moderatorAddedList []string // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户) 6362 moderatorAddedListFlag bool 6363 moderatorRemovedList []string // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户) 6364 moderatorRemovedListFlag bool 6365 } 6366 6367 func NewUpdateChatModerationPathReqBodyBuilder() *UpdateChatModerationPathReqBodyBuilder { 6368 builder := &UpdateChatModerationPathReqBodyBuilder{} 6369 return builder 6370 } 6371 6372 // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式) 6373 // 6374 // 示例值:moderator_list 6375 func (builder *UpdateChatModerationPathReqBodyBuilder) ModerationSetting(moderationSetting string) *UpdateChatModerationPathReqBodyBuilder { 6376 builder.moderationSetting = moderationSetting 6377 builder.moderationSettingFlag = true 6378 return builder 6379 } 6380 6381 // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户) 6382 // 6383 // 示例值:["4d7a3c6g"] 6384 func (builder *UpdateChatModerationPathReqBodyBuilder) ModeratorAddedList(moderatorAddedList []string) *UpdateChatModerationPathReqBodyBuilder { 6385 builder.moderatorAddedList = moderatorAddedList 6386 builder.moderatorAddedListFlag = true 6387 return builder 6388 } 6389 6390 // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户) 6391 // 6392 // 示例值:["4d7a3ih6"] 6393 func (builder *UpdateChatModerationPathReqBodyBuilder) ModeratorRemovedList(moderatorRemovedList []string) *UpdateChatModerationPathReqBodyBuilder { 6394 builder.moderatorRemovedList = moderatorRemovedList 6395 builder.moderatorRemovedListFlag = true 6396 return builder 6397 } 6398 6399 func (builder *UpdateChatModerationPathReqBodyBuilder) Build() (*UpdateChatModerationReqBody, error) { 6400 req := &UpdateChatModerationReqBody{} 6401 if builder.moderationSettingFlag { 6402 req.ModerationSetting = &builder.moderationSetting 6403 } 6404 if builder.moderatorAddedListFlag { 6405 req.ModeratorAddedList = builder.moderatorAddedList 6406 } 6407 if builder.moderatorRemovedListFlag { 6408 req.ModeratorRemovedList = builder.moderatorRemovedList 6409 } 6410 return req, nil 6411 } 6412 6413 type UpdateChatModerationReqBuilder struct { 6414 apiReq *larkcore.ApiReq 6415 body *UpdateChatModerationReqBody 6416 } 6417 6418 func NewUpdateChatModerationReqBuilder() *UpdateChatModerationReqBuilder { 6419 builder := &UpdateChatModerationReqBuilder{} 6420 builder.apiReq = &larkcore.ApiReq{ 6421 PathParams: larkcore.PathParams{}, 6422 QueryParams: larkcore.QueryParams{}, 6423 } 6424 return builder 6425 } 6426 6427 // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 6428 // 6429 // 示例值:oc_a0553eda9014c201e6969b478895c230 6430 func (builder *UpdateChatModerationReqBuilder) ChatId(chatId string) *UpdateChatModerationReqBuilder { 6431 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6432 return builder 6433 } 6434 6435 // 此次调用中使用的用户ID的类型 6436 // 6437 // 示例值: 6438 func (builder *UpdateChatModerationReqBuilder) UserIdType(userIdType string) *UpdateChatModerationReqBuilder { 6439 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 6440 return builder 6441 } 6442 6443 // 更新群组的发言权限设置,可设置为全员可发言、仅管理员可发言 或 指定用户可发言。 6444 func (builder *UpdateChatModerationReqBuilder) Body(body *UpdateChatModerationReqBody) *UpdateChatModerationReqBuilder { 6445 builder.body = body 6446 return builder 6447 } 6448 6449 func (builder *UpdateChatModerationReqBuilder) Build() *UpdateChatModerationReq { 6450 req := &UpdateChatModerationReq{} 6451 req.apiReq = &larkcore.ApiReq{} 6452 req.apiReq.PathParams = builder.apiReq.PathParams 6453 req.apiReq.QueryParams = builder.apiReq.QueryParams 6454 req.apiReq.Body = builder.body 6455 return req 6456 } 6457 6458 type UpdateChatModerationReqBody struct { 6459 ModerationSetting *string `json:"moderation_setting,omitempty"` // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式) 6460 ModeratorAddedList []string `json:"moderator_added_list,omitempty"` // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户) 6461 ModeratorRemovedList []string `json:"moderator_removed_list,omitempty"` // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户) 6462 } 6463 6464 type UpdateChatModerationReq struct { 6465 apiReq *larkcore.ApiReq 6466 Body *UpdateChatModerationReqBody `body:""` 6467 } 6468 6469 type UpdateChatModerationResp struct { 6470 *larkcore.ApiResp `json:"-"` 6471 larkcore.CodeError 6472 } 6473 6474 func (resp *UpdateChatModerationResp) Success() bool { 6475 return resp.Code == 0 6476 } 6477 6478 type CreateChatTabReqBodyBuilder struct { 6479 chatTabs []*ChatTab // 会话标签页 6480 chatTabsFlag bool 6481 } 6482 6483 func NewCreateChatTabReqBodyBuilder() *CreateChatTabReqBodyBuilder { 6484 builder := &CreateChatTabReqBodyBuilder{} 6485 return builder 6486 } 6487 6488 // 会话标签页 6489 // 6490 //示例值: 6491 func (builder *CreateChatTabReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *CreateChatTabReqBodyBuilder { 6492 builder.chatTabs = chatTabs 6493 builder.chatTabsFlag = true 6494 return builder 6495 } 6496 6497 func (builder *CreateChatTabReqBodyBuilder) Build() *CreateChatTabReqBody { 6498 req := &CreateChatTabReqBody{} 6499 if builder.chatTabsFlag { 6500 req.ChatTabs = builder.chatTabs 6501 } 6502 return req 6503 } 6504 6505 type CreateChatTabPathReqBodyBuilder struct { 6506 chatTabs []*ChatTab // 会话标签页 6507 chatTabsFlag bool 6508 } 6509 6510 func NewCreateChatTabPathReqBodyBuilder() *CreateChatTabPathReqBodyBuilder { 6511 builder := &CreateChatTabPathReqBodyBuilder{} 6512 return builder 6513 } 6514 6515 // 会话标签页 6516 // 6517 // 示例值: 6518 func (builder *CreateChatTabPathReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *CreateChatTabPathReqBodyBuilder { 6519 builder.chatTabs = chatTabs 6520 builder.chatTabsFlag = true 6521 return builder 6522 } 6523 6524 func (builder *CreateChatTabPathReqBodyBuilder) Build() (*CreateChatTabReqBody, error) { 6525 req := &CreateChatTabReqBody{} 6526 if builder.chatTabsFlag { 6527 req.ChatTabs = builder.chatTabs 6528 } 6529 return req, nil 6530 } 6531 6532 type CreateChatTabReqBuilder struct { 6533 apiReq *larkcore.ApiReq 6534 body *CreateChatTabReqBody 6535 } 6536 6537 func NewCreateChatTabReqBuilder() *CreateChatTabReqBuilder { 6538 builder := &CreateChatTabReqBuilder{} 6539 builder.apiReq = &larkcore.ApiReq{ 6540 PathParams: larkcore.PathParams{}, 6541 QueryParams: larkcore.QueryParams{}, 6542 } 6543 return builder 6544 } 6545 6546 // 群ID 6547 // 6548 // 示例值:oc_a0553eda9014c201e6969b478895c230 6549 func (builder *CreateChatTabReqBuilder) ChatId(chatId string) *CreateChatTabReqBuilder { 6550 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6551 return builder 6552 } 6553 6554 // 添加自定义会话标签页 6555 func (builder *CreateChatTabReqBuilder) Body(body *CreateChatTabReqBody) *CreateChatTabReqBuilder { 6556 builder.body = body 6557 return builder 6558 } 6559 6560 func (builder *CreateChatTabReqBuilder) Build() *CreateChatTabReq { 6561 req := &CreateChatTabReq{} 6562 req.apiReq = &larkcore.ApiReq{} 6563 req.apiReq.PathParams = builder.apiReq.PathParams 6564 req.apiReq.Body = builder.body 6565 return req 6566 } 6567 6568 type CreateChatTabReqBody struct { 6569 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页 6570 } 6571 6572 type CreateChatTabReq struct { 6573 apiReq *larkcore.ApiReq 6574 Body *CreateChatTabReqBody `body:""` 6575 } 6576 6577 type CreateChatTabRespData struct { 6578 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页 6579 } 6580 6581 type CreateChatTabResp struct { 6582 *larkcore.ApiResp `json:"-"` 6583 larkcore.CodeError 6584 Data *CreateChatTabRespData `json:"data"` // 业务数据 6585 } 6586 6587 func (resp *CreateChatTabResp) Success() bool { 6588 return resp.Code == 0 6589 } 6590 6591 type DeleteTabsChatTabReqBodyBuilder struct { 6592 tabIds []string // 会话标签页id列表 6593 tabIdsFlag bool 6594 } 6595 6596 func NewDeleteTabsChatTabReqBodyBuilder() *DeleteTabsChatTabReqBodyBuilder { 6597 builder := &DeleteTabsChatTabReqBodyBuilder{} 6598 return builder 6599 } 6600 6601 // 会话标签页id列表 6602 // 6603 //示例值:["7101214603622940671", "7101214603622940672"] 6604 func (builder *DeleteTabsChatTabReqBodyBuilder) TabIds(tabIds []string) *DeleteTabsChatTabReqBodyBuilder { 6605 builder.tabIds = tabIds 6606 builder.tabIdsFlag = true 6607 return builder 6608 } 6609 6610 func (builder *DeleteTabsChatTabReqBodyBuilder) Build() *DeleteTabsChatTabReqBody { 6611 req := &DeleteTabsChatTabReqBody{} 6612 if builder.tabIdsFlag { 6613 req.TabIds = builder.tabIds 6614 } 6615 return req 6616 } 6617 6618 type DeleteTabsChatTabPathReqBodyBuilder struct { 6619 tabIds []string // 会话标签页id列表 6620 tabIdsFlag bool 6621 } 6622 6623 func NewDeleteTabsChatTabPathReqBodyBuilder() *DeleteTabsChatTabPathReqBodyBuilder { 6624 builder := &DeleteTabsChatTabPathReqBodyBuilder{} 6625 return builder 6626 } 6627 6628 // 会话标签页id列表 6629 // 6630 // 示例值:["7101214603622940671", "7101214603622940672"] 6631 func (builder *DeleteTabsChatTabPathReqBodyBuilder) TabIds(tabIds []string) *DeleteTabsChatTabPathReqBodyBuilder { 6632 builder.tabIds = tabIds 6633 builder.tabIdsFlag = true 6634 return builder 6635 } 6636 6637 func (builder *DeleteTabsChatTabPathReqBodyBuilder) Build() (*DeleteTabsChatTabReqBody, error) { 6638 req := &DeleteTabsChatTabReqBody{} 6639 if builder.tabIdsFlag { 6640 req.TabIds = builder.tabIds 6641 } 6642 return req, nil 6643 } 6644 6645 type DeleteTabsChatTabReqBuilder struct { 6646 apiReq *larkcore.ApiReq 6647 body *DeleteTabsChatTabReqBody 6648 } 6649 6650 func NewDeleteTabsChatTabReqBuilder() *DeleteTabsChatTabReqBuilder { 6651 builder := &DeleteTabsChatTabReqBuilder{} 6652 builder.apiReq = &larkcore.ApiReq{ 6653 PathParams: larkcore.PathParams{}, 6654 QueryParams: larkcore.QueryParams{}, 6655 } 6656 return builder 6657 } 6658 6659 // 群ID 6660 // 6661 // 示例值:oc_a0553eda9014c201e6969b478895c230 6662 func (builder *DeleteTabsChatTabReqBuilder) ChatId(chatId string) *DeleteTabsChatTabReqBuilder { 6663 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6664 return builder 6665 } 6666 6667 // 删除会话标签页 6668 func (builder *DeleteTabsChatTabReqBuilder) Body(body *DeleteTabsChatTabReqBody) *DeleteTabsChatTabReqBuilder { 6669 builder.body = body 6670 return builder 6671 } 6672 6673 func (builder *DeleteTabsChatTabReqBuilder) Build() *DeleteTabsChatTabReq { 6674 req := &DeleteTabsChatTabReq{} 6675 req.apiReq = &larkcore.ApiReq{} 6676 req.apiReq.PathParams = builder.apiReq.PathParams 6677 req.apiReq.Body = builder.body 6678 return req 6679 } 6680 6681 type DeleteTabsChatTabReqBody struct { 6682 TabIds []string `json:"tab_ids,omitempty"` // 会话标签页id列表 6683 } 6684 6685 type DeleteTabsChatTabReq struct { 6686 apiReq *larkcore.ApiReq 6687 Body *DeleteTabsChatTabReqBody `body:""` 6688 } 6689 6690 type DeleteTabsChatTabRespData struct { 6691 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页 6692 } 6693 6694 type DeleteTabsChatTabResp struct { 6695 *larkcore.ApiResp `json:"-"` 6696 larkcore.CodeError 6697 Data *DeleteTabsChatTabRespData `json:"data"` // 业务数据 6698 } 6699 6700 func (resp *DeleteTabsChatTabResp) Success() bool { 6701 return resp.Code == 0 6702 } 6703 6704 type ListTabsChatTabReqBuilder struct { 6705 apiReq *larkcore.ApiReq 6706 } 6707 6708 func NewListTabsChatTabReqBuilder() *ListTabsChatTabReqBuilder { 6709 builder := &ListTabsChatTabReqBuilder{} 6710 builder.apiReq = &larkcore.ApiReq{ 6711 PathParams: larkcore.PathParams{}, 6712 QueryParams: larkcore.QueryParams{}, 6713 } 6714 return builder 6715 } 6716 6717 // 群ID 6718 // 6719 // 示例值:oc_a0553eda9014c201e6969b478895c230 6720 func (builder *ListTabsChatTabReqBuilder) ChatId(chatId string) *ListTabsChatTabReqBuilder { 6721 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6722 return builder 6723 } 6724 6725 func (builder *ListTabsChatTabReqBuilder) Build() *ListTabsChatTabReq { 6726 req := &ListTabsChatTabReq{} 6727 req.apiReq = &larkcore.ApiReq{} 6728 req.apiReq.PathParams = builder.apiReq.PathParams 6729 return req 6730 } 6731 6732 type ListTabsChatTabReq struct { 6733 apiReq *larkcore.ApiReq 6734 } 6735 6736 type ListTabsChatTabRespData struct { 6737 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页 6738 } 6739 6740 type ListTabsChatTabResp struct { 6741 *larkcore.ApiResp `json:"-"` 6742 larkcore.CodeError 6743 Data *ListTabsChatTabRespData `json:"data"` // 业务数据 6744 } 6745 6746 func (resp *ListTabsChatTabResp) Success() bool { 6747 return resp.Code == 0 6748 } 6749 6750 type SortTabsChatTabReqBodyBuilder struct { 6751 tabIds []string // 会话标签页ID列表 6752 tabIdsFlag bool 6753 } 6754 6755 func NewSortTabsChatTabReqBodyBuilder() *SortTabsChatTabReqBodyBuilder { 6756 builder := &SortTabsChatTabReqBodyBuilder{} 6757 return builder 6758 } 6759 6760 // 会话标签页ID列表 6761 // 6762 //示例值:["7101214603622940671", "7101214603622940672"] 6763 func (builder *SortTabsChatTabReqBodyBuilder) TabIds(tabIds []string) *SortTabsChatTabReqBodyBuilder { 6764 builder.tabIds = tabIds 6765 builder.tabIdsFlag = true 6766 return builder 6767 } 6768 6769 func (builder *SortTabsChatTabReqBodyBuilder) Build() *SortTabsChatTabReqBody { 6770 req := &SortTabsChatTabReqBody{} 6771 if builder.tabIdsFlag { 6772 req.TabIds = builder.tabIds 6773 } 6774 return req 6775 } 6776 6777 type SortTabsChatTabPathReqBodyBuilder struct { 6778 tabIds []string // 会话标签页ID列表 6779 tabIdsFlag bool 6780 } 6781 6782 func NewSortTabsChatTabPathReqBodyBuilder() *SortTabsChatTabPathReqBodyBuilder { 6783 builder := &SortTabsChatTabPathReqBodyBuilder{} 6784 return builder 6785 } 6786 6787 // 会话标签页ID列表 6788 // 6789 // 示例值:["7101214603622940671", "7101214603622940672"] 6790 func (builder *SortTabsChatTabPathReqBodyBuilder) TabIds(tabIds []string) *SortTabsChatTabPathReqBodyBuilder { 6791 builder.tabIds = tabIds 6792 builder.tabIdsFlag = true 6793 return builder 6794 } 6795 6796 func (builder *SortTabsChatTabPathReqBodyBuilder) Build() (*SortTabsChatTabReqBody, error) { 6797 req := &SortTabsChatTabReqBody{} 6798 if builder.tabIdsFlag { 6799 req.TabIds = builder.tabIds 6800 } 6801 return req, nil 6802 } 6803 6804 type SortTabsChatTabReqBuilder struct { 6805 apiReq *larkcore.ApiReq 6806 body *SortTabsChatTabReqBody 6807 } 6808 6809 func NewSortTabsChatTabReqBuilder() *SortTabsChatTabReqBuilder { 6810 builder := &SortTabsChatTabReqBuilder{} 6811 builder.apiReq = &larkcore.ApiReq{ 6812 PathParams: larkcore.PathParams{}, 6813 QueryParams: larkcore.QueryParams{}, 6814 } 6815 return builder 6816 } 6817 6818 // 群ID 6819 // 6820 // 示例值:oc_a0553eda9014c201e6969b478895c230 6821 func (builder *SortTabsChatTabReqBuilder) ChatId(chatId string) *SortTabsChatTabReqBuilder { 6822 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6823 return builder 6824 } 6825 6826 // 会话标签页排序 6827 func (builder *SortTabsChatTabReqBuilder) Body(body *SortTabsChatTabReqBody) *SortTabsChatTabReqBuilder { 6828 builder.body = body 6829 return builder 6830 } 6831 6832 func (builder *SortTabsChatTabReqBuilder) Build() *SortTabsChatTabReq { 6833 req := &SortTabsChatTabReq{} 6834 req.apiReq = &larkcore.ApiReq{} 6835 req.apiReq.PathParams = builder.apiReq.PathParams 6836 req.apiReq.Body = builder.body 6837 return req 6838 } 6839 6840 type SortTabsChatTabReqBody struct { 6841 TabIds []string `json:"tab_ids,omitempty"` // 会话标签页ID列表 6842 } 6843 6844 type SortTabsChatTabReq struct { 6845 apiReq *larkcore.ApiReq 6846 Body *SortTabsChatTabReqBody `body:""` 6847 } 6848 6849 type SortTabsChatTabRespData struct { 6850 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页 6851 } 6852 6853 type SortTabsChatTabResp struct { 6854 *larkcore.ApiResp `json:"-"` 6855 larkcore.CodeError 6856 Data *SortTabsChatTabRespData `json:"data"` // 业务数据 6857 } 6858 6859 func (resp *SortTabsChatTabResp) Success() bool { 6860 return resp.Code == 0 6861 } 6862 6863 type UpdateTabsChatTabReqBodyBuilder struct { 6864 chatTabs []*ChatTab // 会话标签页 6865 chatTabsFlag bool 6866 } 6867 6868 func NewUpdateTabsChatTabReqBodyBuilder() *UpdateTabsChatTabReqBodyBuilder { 6869 builder := &UpdateTabsChatTabReqBodyBuilder{} 6870 return builder 6871 } 6872 6873 // 会话标签页 6874 // 6875 //示例值: 6876 func (builder *UpdateTabsChatTabReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *UpdateTabsChatTabReqBodyBuilder { 6877 builder.chatTabs = chatTabs 6878 builder.chatTabsFlag = true 6879 return builder 6880 } 6881 6882 func (builder *UpdateTabsChatTabReqBodyBuilder) Build() *UpdateTabsChatTabReqBody { 6883 req := &UpdateTabsChatTabReqBody{} 6884 if builder.chatTabsFlag { 6885 req.ChatTabs = builder.chatTabs 6886 } 6887 return req 6888 } 6889 6890 type UpdateTabsChatTabPathReqBodyBuilder struct { 6891 chatTabs []*ChatTab // 会话标签页 6892 chatTabsFlag bool 6893 } 6894 6895 func NewUpdateTabsChatTabPathReqBodyBuilder() *UpdateTabsChatTabPathReqBodyBuilder { 6896 builder := &UpdateTabsChatTabPathReqBodyBuilder{} 6897 return builder 6898 } 6899 6900 // 会话标签页 6901 // 6902 // 示例值: 6903 func (builder *UpdateTabsChatTabPathReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *UpdateTabsChatTabPathReqBodyBuilder { 6904 builder.chatTabs = chatTabs 6905 builder.chatTabsFlag = true 6906 return builder 6907 } 6908 6909 func (builder *UpdateTabsChatTabPathReqBodyBuilder) Build() (*UpdateTabsChatTabReqBody, error) { 6910 req := &UpdateTabsChatTabReqBody{} 6911 if builder.chatTabsFlag { 6912 req.ChatTabs = builder.chatTabs 6913 } 6914 return req, nil 6915 } 6916 6917 type UpdateTabsChatTabReqBuilder struct { 6918 apiReq *larkcore.ApiReq 6919 body *UpdateTabsChatTabReqBody 6920 } 6921 6922 func NewUpdateTabsChatTabReqBuilder() *UpdateTabsChatTabReqBuilder { 6923 builder := &UpdateTabsChatTabReqBuilder{} 6924 builder.apiReq = &larkcore.ApiReq{ 6925 PathParams: larkcore.PathParams{}, 6926 QueryParams: larkcore.QueryParams{}, 6927 } 6928 return builder 6929 } 6930 6931 // 群ID 6932 // 6933 // 示例值:oc_a0553eda9014c201e6969b478895c230 6934 func (builder *UpdateTabsChatTabReqBuilder) ChatId(chatId string) *UpdateTabsChatTabReqBuilder { 6935 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6936 return builder 6937 } 6938 6939 // 更新会话标签页 6940 func (builder *UpdateTabsChatTabReqBuilder) Body(body *UpdateTabsChatTabReqBody) *UpdateTabsChatTabReqBuilder { 6941 builder.body = body 6942 return builder 6943 } 6944 6945 func (builder *UpdateTabsChatTabReqBuilder) Build() *UpdateTabsChatTabReq { 6946 req := &UpdateTabsChatTabReq{} 6947 req.apiReq = &larkcore.ApiReq{} 6948 req.apiReq.PathParams = builder.apiReq.PathParams 6949 req.apiReq.Body = builder.body 6950 return req 6951 } 6952 6953 type UpdateTabsChatTabReqBody struct { 6954 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页 6955 } 6956 6957 type UpdateTabsChatTabReq struct { 6958 apiReq *larkcore.ApiReq 6959 Body *UpdateTabsChatTabReqBody `body:""` 6960 } 6961 6962 type UpdateTabsChatTabRespData struct { 6963 ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 群标签 6964 } 6965 6966 type UpdateTabsChatTabResp struct { 6967 *larkcore.ApiResp `json:"-"` 6968 larkcore.CodeError 6969 Data *UpdateTabsChatTabRespData `json:"data"` // 业务数据 6970 } 6971 6972 func (resp *UpdateTabsChatTabResp) Success() bool { 6973 return resp.Code == 0 6974 } 6975 6976 type DeleteTopNoticeChatTopNoticeReqBuilder struct { 6977 apiReq *larkcore.ApiReq 6978 } 6979 6980 func NewDeleteTopNoticeChatTopNoticeReqBuilder() *DeleteTopNoticeChatTopNoticeReqBuilder { 6981 builder := &DeleteTopNoticeChatTopNoticeReqBuilder{} 6982 builder.apiReq = &larkcore.ApiReq{ 6983 PathParams: larkcore.PathParams{}, 6984 QueryParams: larkcore.QueryParams{}, 6985 } 6986 return builder 6987 } 6988 6989 // 待撤销置顶的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 6990 // 6991 // 示例值:oc_5ad11d72b830411d72b836c20 6992 func (builder *DeleteTopNoticeChatTopNoticeReqBuilder) ChatId(chatId string) *DeleteTopNoticeChatTopNoticeReqBuilder { 6993 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 6994 return builder 6995 } 6996 6997 func (builder *DeleteTopNoticeChatTopNoticeReqBuilder) Build() *DeleteTopNoticeChatTopNoticeReq { 6998 req := &DeleteTopNoticeChatTopNoticeReq{} 6999 req.apiReq = &larkcore.ApiReq{} 7000 req.apiReq.PathParams = builder.apiReq.PathParams 7001 return req 7002 } 7003 7004 type DeleteTopNoticeChatTopNoticeReq struct { 7005 apiReq *larkcore.ApiReq 7006 } 7007 7008 type DeleteTopNoticeChatTopNoticeResp struct { 7009 *larkcore.ApiResp `json:"-"` 7010 larkcore.CodeError 7011 } 7012 7013 func (resp *DeleteTopNoticeChatTopNoticeResp) Success() bool { 7014 return resp.Code == 0 7015 } 7016 7017 type PutTopNoticeChatTopNoticeReqBodyBuilder struct { 7018 chatTopNotice []*ChatTopNotice // 要进行发布的群置顶 7019 chatTopNoticeFlag bool 7020 } 7021 7022 func NewPutTopNoticeChatTopNoticeReqBodyBuilder() *PutTopNoticeChatTopNoticeReqBodyBuilder { 7023 builder := &PutTopNoticeChatTopNoticeReqBodyBuilder{} 7024 return builder 7025 } 7026 7027 // 要进行发布的群置顶 7028 // 7029 //示例值: 7030 func (builder *PutTopNoticeChatTopNoticeReqBodyBuilder) ChatTopNotice(chatTopNotice []*ChatTopNotice) *PutTopNoticeChatTopNoticeReqBodyBuilder { 7031 builder.chatTopNotice = chatTopNotice 7032 builder.chatTopNoticeFlag = true 7033 return builder 7034 } 7035 7036 func (builder *PutTopNoticeChatTopNoticeReqBodyBuilder) Build() *PutTopNoticeChatTopNoticeReqBody { 7037 req := &PutTopNoticeChatTopNoticeReqBody{} 7038 if builder.chatTopNoticeFlag { 7039 req.ChatTopNotice = builder.chatTopNotice 7040 } 7041 return req 7042 } 7043 7044 type PutTopNoticeChatTopNoticePathReqBodyBuilder struct { 7045 chatTopNotice []*ChatTopNotice // 要进行发布的群置顶 7046 chatTopNoticeFlag bool 7047 } 7048 7049 func NewPutTopNoticeChatTopNoticePathReqBodyBuilder() *PutTopNoticeChatTopNoticePathReqBodyBuilder { 7050 builder := &PutTopNoticeChatTopNoticePathReqBodyBuilder{} 7051 return builder 7052 } 7053 7054 // 要进行发布的群置顶 7055 // 7056 // 示例值: 7057 func (builder *PutTopNoticeChatTopNoticePathReqBodyBuilder) ChatTopNotice(chatTopNotice []*ChatTopNotice) *PutTopNoticeChatTopNoticePathReqBodyBuilder { 7058 builder.chatTopNotice = chatTopNotice 7059 builder.chatTopNoticeFlag = true 7060 return builder 7061 } 7062 7063 func (builder *PutTopNoticeChatTopNoticePathReqBodyBuilder) Build() (*PutTopNoticeChatTopNoticeReqBody, error) { 7064 req := &PutTopNoticeChatTopNoticeReqBody{} 7065 if builder.chatTopNoticeFlag { 7066 req.ChatTopNotice = builder.chatTopNotice 7067 } 7068 return req, nil 7069 } 7070 7071 type PutTopNoticeChatTopNoticeReqBuilder struct { 7072 apiReq *larkcore.ApiReq 7073 body *PutTopNoticeChatTopNoticeReqBody 7074 } 7075 7076 func NewPutTopNoticeChatTopNoticeReqBuilder() *PutTopNoticeChatTopNoticeReqBuilder { 7077 builder := &PutTopNoticeChatTopNoticeReqBuilder{} 7078 builder.apiReq = &larkcore.ApiReq{ 7079 PathParams: larkcore.PathParams{}, 7080 QueryParams: larkcore.QueryParams{}, 7081 } 7082 return builder 7083 } 7084 7085 // 待修改置顶的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 7086 // 7087 // 示例值:oc_5ad11d72b830411d72b836c20 7088 func (builder *PutTopNoticeChatTopNoticeReqBuilder) ChatId(chatId string) *PutTopNoticeChatTopNoticeReqBuilder { 7089 builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId)) 7090 return builder 7091 } 7092 7093 // 更新会话中的群置顶信息,可以将群中的某一条消息,或者群公告置顶显示。 7094 func (builder *PutTopNoticeChatTopNoticeReqBuilder) Body(body *PutTopNoticeChatTopNoticeReqBody) *PutTopNoticeChatTopNoticeReqBuilder { 7095 builder.body = body 7096 return builder 7097 } 7098 7099 func (builder *PutTopNoticeChatTopNoticeReqBuilder) Build() *PutTopNoticeChatTopNoticeReq { 7100 req := &PutTopNoticeChatTopNoticeReq{} 7101 req.apiReq = &larkcore.ApiReq{} 7102 req.apiReq.PathParams = builder.apiReq.PathParams 7103 req.apiReq.Body = builder.body 7104 return req 7105 } 7106 7107 type PutTopNoticeChatTopNoticeReqBody struct { 7108 ChatTopNotice []*ChatTopNotice `json:"chat_top_notice,omitempty"` // 要进行发布的群置顶 7109 } 7110 7111 type PutTopNoticeChatTopNoticeReq struct { 7112 apiReq *larkcore.ApiReq 7113 Body *PutTopNoticeChatTopNoticeReqBody `body:""` 7114 } 7115 7116 type PutTopNoticeChatTopNoticeResp struct { 7117 *larkcore.ApiResp `json:"-"` 7118 larkcore.CodeError 7119 } 7120 7121 func (resp *PutTopNoticeChatTopNoticeResp) Success() bool { 7122 return resp.Code == 0 7123 } 7124 7125 type CreateFileReqBodyBuilder struct { 7126 fileType string // 文件类型 7127 fileTypeFlag bool 7128 fileName string // 带后缀的文件名 7129 fileNameFlag bool 7130 duration int // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。 7131 durationFlag bool 7132 file io.Reader // 文件内容 7133 fileFlag bool 7134 } 7135 7136 func NewCreateFileReqBodyBuilder() *CreateFileReqBodyBuilder { 7137 builder := &CreateFileReqBodyBuilder{} 7138 return builder 7139 } 7140 7141 // 文件类型 7142 // 7143 //示例值:mp4 7144 func (builder *CreateFileReqBodyBuilder) FileType(fileType string) *CreateFileReqBodyBuilder { 7145 builder.fileType = fileType 7146 builder.fileTypeFlag = true 7147 return builder 7148 } 7149 7150 // 带后缀的文件名 7151 // 7152 //示例值:测试视频.mp4 7153 func (builder *CreateFileReqBodyBuilder) FileName(fileName string) *CreateFileReqBodyBuilder { 7154 builder.fileName = fileName 7155 builder.fileNameFlag = true 7156 return builder 7157 } 7158 7159 // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。 7160 // 7161 //示例值:3000 7162 func (builder *CreateFileReqBodyBuilder) Duration(duration int) *CreateFileReqBodyBuilder { 7163 builder.duration = duration 7164 builder.durationFlag = true 7165 return builder 7166 } 7167 7168 // 文件内容 7169 // 7170 //示例值:二进制文件 7171 func (builder *CreateFileReqBodyBuilder) File(file io.Reader) *CreateFileReqBodyBuilder { 7172 builder.file = file 7173 builder.fileFlag = true 7174 return builder 7175 } 7176 7177 func (builder *CreateFileReqBodyBuilder) Build() *CreateFileReqBody { 7178 req := &CreateFileReqBody{} 7179 if builder.fileTypeFlag { 7180 req.FileType = &builder.fileType 7181 } 7182 if builder.fileNameFlag { 7183 req.FileName = &builder.fileName 7184 } 7185 if builder.durationFlag { 7186 req.Duration = &builder.duration 7187 } 7188 if builder.fileFlag { 7189 req.File = builder.file 7190 } 7191 return req 7192 } 7193 7194 type CreateFilePathReqBodyBuilder struct { 7195 fileType string // 文件类型 7196 fileTypeFlag bool 7197 fileName string // 带后缀的文件名 7198 fileNameFlag bool 7199 duration int // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。 7200 durationFlag bool 7201 filePath string // 文件内容 7202 filePathFlag bool 7203 } 7204 7205 func NewCreateFilePathReqBodyBuilder() *CreateFilePathReqBodyBuilder { 7206 builder := &CreateFilePathReqBodyBuilder{} 7207 return builder 7208 } 7209 7210 // 文件类型 7211 // 7212 // 示例值:mp4 7213 func (builder *CreateFilePathReqBodyBuilder) FileType(fileType string) *CreateFilePathReqBodyBuilder { 7214 builder.fileType = fileType 7215 builder.fileTypeFlag = true 7216 return builder 7217 } 7218 7219 // 带后缀的文件名 7220 // 7221 // 示例值:测试视频.mp4 7222 func (builder *CreateFilePathReqBodyBuilder) FileName(fileName string) *CreateFilePathReqBodyBuilder { 7223 builder.fileName = fileName 7224 builder.fileNameFlag = true 7225 return builder 7226 } 7227 7228 // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。 7229 // 7230 // 示例值:3000 7231 func (builder *CreateFilePathReqBodyBuilder) Duration(duration int) *CreateFilePathReqBodyBuilder { 7232 builder.duration = duration 7233 builder.durationFlag = true 7234 return builder 7235 } 7236 7237 // 文件内容 7238 // 7239 // 示例值:二进制文件 7240 func (builder *CreateFilePathReqBodyBuilder) FilePath(filePath string) *CreateFilePathReqBodyBuilder { 7241 builder.filePath = filePath 7242 builder.filePathFlag = true 7243 return builder 7244 } 7245 7246 func (builder *CreateFilePathReqBodyBuilder) Build() (*CreateFileReqBody, error) { 7247 req := &CreateFileReqBody{} 7248 if builder.fileTypeFlag { 7249 req.FileType = &builder.fileType 7250 } 7251 if builder.fileNameFlag { 7252 req.FileName = &builder.fileName 7253 } 7254 if builder.durationFlag { 7255 req.Duration = &builder.duration 7256 } 7257 if builder.filePathFlag { 7258 data, err := larkcore.File2Bytes(builder.filePath) 7259 if err != nil { 7260 return nil, err 7261 } 7262 req.File = bytes.NewBuffer(data) 7263 } 7264 return req, nil 7265 } 7266 7267 type CreateFileReqBuilder struct { 7268 apiReq *larkcore.ApiReq 7269 body *CreateFileReqBody 7270 } 7271 7272 func NewCreateFileReqBuilder() *CreateFileReqBuilder { 7273 builder := &CreateFileReqBuilder{} 7274 builder.apiReq = &larkcore.ApiReq{ 7275 PathParams: larkcore.PathParams{}, 7276 QueryParams: larkcore.QueryParams{}, 7277 } 7278 return builder 7279 } 7280 7281 // 上传文件,可以上传视频,音频和常见的文件类型 7282 func (builder *CreateFileReqBuilder) Body(body *CreateFileReqBody) *CreateFileReqBuilder { 7283 builder.body = body 7284 return builder 7285 } 7286 7287 func (builder *CreateFileReqBuilder) Build() *CreateFileReq { 7288 req := &CreateFileReq{} 7289 req.apiReq = &larkcore.ApiReq{} 7290 req.apiReq.Body = builder.body 7291 return req 7292 } 7293 7294 type CreateFileReqBody struct { 7295 FileType *string `json:"file_type,omitempty"` // 文件类型 7296 FileName *string `json:"file_name,omitempty"` // 带后缀的文件名 7297 Duration *int `json:"duration,omitempty"` // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。 7298 File io.Reader `json:"file,omitempty"` // 文件内容 7299 } 7300 7301 type CreateFileReq struct { 7302 apiReq *larkcore.ApiReq 7303 Body *CreateFileReqBody `body:""` 7304 } 7305 7306 type CreateFileRespData struct { 7307 FileKey *string `json:"file_key,omitempty"` // 文件的key 7308 } 7309 7310 type CreateFileResp struct { 7311 *larkcore.ApiResp `json:"-"` 7312 larkcore.CodeError 7313 Data *CreateFileRespData `json:"data"` // 业务数据 7314 } 7315 7316 func (resp *CreateFileResp) Success() bool { 7317 return resp.Code == 0 7318 } 7319 7320 type GetFileReqBuilder struct { 7321 apiReq *larkcore.ApiReq 7322 } 7323 7324 func NewGetFileReqBuilder() *GetFileReqBuilder { 7325 builder := &GetFileReqBuilder{} 7326 builder.apiReq = &larkcore.ApiReq{ 7327 PathParams: larkcore.PathParams{}, 7328 QueryParams: larkcore.QueryParams{}, 7329 } 7330 return builder 7331 } 7332 7333 // 文件的key 7334 // 7335 // 示例值:file_456a92d6-c6ea-4de4-ac3f-7afcf44ac78g 7336 func (builder *GetFileReqBuilder) FileKey(fileKey string) *GetFileReqBuilder { 7337 builder.apiReq.PathParams.Set("file_key", fmt.Sprint(fileKey)) 7338 return builder 7339 } 7340 7341 func (builder *GetFileReqBuilder) Build() *GetFileReq { 7342 req := &GetFileReq{} 7343 req.apiReq = &larkcore.ApiReq{} 7344 req.apiReq.PathParams = builder.apiReq.PathParams 7345 return req 7346 } 7347 7348 type GetFileReq struct { 7349 apiReq *larkcore.ApiReq 7350 } 7351 7352 type GetFileResp struct { 7353 *larkcore.ApiResp `json:"-"` 7354 larkcore.CodeError 7355 File io.Reader `json:"-"` 7356 FileName string `json:"-"` 7357 } 7358 7359 func (resp *GetFileResp) Success() bool { 7360 return resp.Code == 0 7361 } 7362 7363 func (resp *GetFileResp) WriteFile(fileName string) error { 7364 bs, err := ioutil.ReadAll(resp.File) 7365 if err != nil { 7366 return err 7367 } 7368 7369 err = ioutil.WriteFile(fileName, bs, 0666) 7370 if err != nil { 7371 return err 7372 } 7373 return nil 7374 } 7375 7376 type CreateImageReqBodyBuilder struct { 7377 imageType string // 图片类型 7378 imageTypeFlag bool 7379 image io.Reader // 图片内容;; **注意:** 上传的图片大小不能超过10MB 7380 imageFlag bool 7381 } 7382 7383 func NewCreateImageReqBodyBuilder() *CreateImageReqBodyBuilder { 7384 builder := &CreateImageReqBodyBuilder{} 7385 return builder 7386 } 7387 7388 // 图片类型 7389 // 7390 //示例值:message 7391 func (builder *CreateImageReqBodyBuilder) ImageType(imageType string) *CreateImageReqBodyBuilder { 7392 builder.imageType = imageType 7393 builder.imageTypeFlag = true 7394 return builder 7395 } 7396 7397 // 图片内容;; **注意:** 上传的图片大小不能超过10MB 7398 // 7399 //示例值:二进制文件 7400 func (builder *CreateImageReqBodyBuilder) Image(image io.Reader) *CreateImageReqBodyBuilder { 7401 builder.image = image 7402 builder.imageFlag = true 7403 return builder 7404 } 7405 7406 func (builder *CreateImageReqBodyBuilder) Build() *CreateImageReqBody { 7407 req := &CreateImageReqBody{} 7408 if builder.imageTypeFlag { 7409 req.ImageType = &builder.imageType 7410 } 7411 if builder.imageFlag { 7412 req.Image = builder.image 7413 } 7414 return req 7415 } 7416 7417 type CreateImagePathReqBodyBuilder struct { 7418 imageType string // 图片类型 7419 imageTypeFlag bool 7420 imagePath string // 图片内容;; **注意:** 上传的图片大小不能超过10MB 7421 imagePathFlag bool 7422 } 7423 7424 func NewCreateImagePathReqBodyBuilder() *CreateImagePathReqBodyBuilder { 7425 builder := &CreateImagePathReqBodyBuilder{} 7426 return builder 7427 } 7428 7429 // 图片类型 7430 // 7431 // 示例值:message 7432 func (builder *CreateImagePathReqBodyBuilder) ImageType(imageType string) *CreateImagePathReqBodyBuilder { 7433 builder.imageType = imageType 7434 builder.imageTypeFlag = true 7435 return builder 7436 } 7437 7438 // 图片内容;; **注意:** 上传的图片大小不能超过10MB 7439 // 7440 // 示例值:二进制文件 7441 func (builder *CreateImagePathReqBodyBuilder) ImagePath(imagePath string) *CreateImagePathReqBodyBuilder { 7442 builder.imagePath = imagePath 7443 builder.imagePathFlag = true 7444 return builder 7445 } 7446 7447 func (builder *CreateImagePathReqBodyBuilder) Build() (*CreateImageReqBody, error) { 7448 req := &CreateImageReqBody{} 7449 if builder.imageTypeFlag { 7450 req.ImageType = &builder.imageType 7451 } 7452 if builder.imagePathFlag { 7453 data, err := larkcore.File2Bytes(builder.imagePath) 7454 if err != nil { 7455 return nil, err 7456 } 7457 req.Image = bytes.NewBuffer(data) 7458 } 7459 return req, nil 7460 } 7461 7462 type CreateImageReqBuilder struct { 7463 apiReq *larkcore.ApiReq 7464 body *CreateImageReqBody 7465 } 7466 7467 func NewCreateImageReqBuilder() *CreateImageReqBuilder { 7468 builder := &CreateImageReqBuilder{} 7469 builder.apiReq = &larkcore.ApiReq{ 7470 PathParams: larkcore.PathParams{}, 7471 QueryParams: larkcore.QueryParams{}, 7472 } 7473 return builder 7474 } 7475 7476 // 上传图片接口,可以上传 JPEG、PNG、WEBP、GIF、TIFF、BMP、ICO格式图片 7477 func (builder *CreateImageReqBuilder) Body(body *CreateImageReqBody) *CreateImageReqBuilder { 7478 builder.body = body 7479 return builder 7480 } 7481 7482 func (builder *CreateImageReqBuilder) Build() *CreateImageReq { 7483 req := &CreateImageReq{} 7484 req.apiReq = &larkcore.ApiReq{} 7485 req.apiReq.Body = builder.body 7486 return req 7487 } 7488 7489 type CreateImageReqBody struct { 7490 ImageType *string `json:"image_type,omitempty"` // 图片类型 7491 Image io.Reader `json:"image,omitempty"` // 图片内容;; **注意:** 上传的图片大小不能超过10MB 7492 } 7493 7494 type CreateImageReq struct { 7495 apiReq *larkcore.ApiReq 7496 Body *CreateImageReqBody `body:""` 7497 } 7498 7499 type CreateImageRespData struct { 7500 ImageKey *string `json:"image_key,omitempty"` // 图片的key 7501 } 7502 7503 type CreateImageResp struct { 7504 *larkcore.ApiResp `json:"-"` 7505 larkcore.CodeError 7506 Data *CreateImageRespData `json:"data"` // 业务数据 7507 } 7508 7509 func (resp *CreateImageResp) Success() bool { 7510 return resp.Code == 0 7511 } 7512 7513 type GetImageReqBuilder struct { 7514 apiReq *larkcore.ApiReq 7515 } 7516 7517 func NewGetImageReqBuilder() *GetImageReqBuilder { 7518 builder := &GetImageReqBuilder{} 7519 builder.apiReq = &larkcore.ApiReq{ 7520 PathParams: larkcore.PathParams{}, 7521 QueryParams: larkcore.QueryParams{}, 7522 } 7523 return builder 7524 } 7525 7526 // 图片的key 7527 // 7528 // 示例值:img_8d5181ca-0aed-40f0-b0d1-b1452132afbg 7529 func (builder *GetImageReqBuilder) ImageKey(imageKey string) *GetImageReqBuilder { 7530 builder.apiReq.PathParams.Set("image_key", fmt.Sprint(imageKey)) 7531 return builder 7532 } 7533 7534 func (builder *GetImageReqBuilder) Build() *GetImageReq { 7535 req := &GetImageReq{} 7536 req.apiReq = &larkcore.ApiReq{} 7537 req.apiReq.PathParams = builder.apiReq.PathParams 7538 return req 7539 } 7540 7541 type GetImageReq struct { 7542 apiReq *larkcore.ApiReq 7543 } 7544 7545 type GetImageResp struct { 7546 *larkcore.ApiResp `json:"-"` 7547 larkcore.CodeError 7548 File io.Reader `json:"-"` 7549 FileName string `json:"-"` 7550 } 7551 7552 func (resp *GetImageResp) Success() bool { 7553 return resp.Code == 0 7554 } 7555 7556 func (resp *GetImageResp) WriteFile(fileName string) error { 7557 bs, err := ioutil.ReadAll(resp.File) 7558 if err != nil { 7559 return err 7560 } 7561 7562 err = ioutil.WriteFile(fileName, bs, 0666) 7563 if err != nil { 7564 return err 7565 } 7566 return nil 7567 } 7568 7569 type CreateMessageReqBodyBuilder struct { 7570 receiveId string // 依据receive_id_type的值,填写对应的消息接收者id 7571 receiveIdFlag bool 7572 content string // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB 7573 contentFlag bool 7574 msgType string // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 7575 msgTypeFlag bool 7576 uuid string // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 7577 uuidFlag bool 7578 } 7579 7580 func NewCreateMessageReqBodyBuilder() *CreateMessageReqBodyBuilder { 7581 builder := &CreateMessageReqBodyBuilder{} 7582 return builder 7583 } 7584 7585 // 依据receive_id_type的值,填写对应的消息接收者id 7586 // 7587 //示例值:ou_7d8a6e6df7621556ce0d21922b676706ccs 7588 func (builder *CreateMessageReqBodyBuilder) ReceiveId(receiveId string) *CreateMessageReqBodyBuilder { 7589 builder.receiveId = receiveId 7590 builder.receiveIdFlag = true 7591 return builder 7592 } 7593 7594 // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB 7595 // 7596 //示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"} 7597 func (builder *CreateMessageReqBodyBuilder) Content(content string) *CreateMessageReqBodyBuilder { 7598 builder.content = content 7599 builder.contentFlag = true 7600 return builder 7601 } 7602 7603 // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 7604 // 7605 //示例值:text 7606 func (builder *CreateMessageReqBodyBuilder) MsgType(msgType string) *CreateMessageReqBodyBuilder { 7607 builder.msgType = msgType 7608 builder.msgTypeFlag = true 7609 return builder 7610 } 7611 7612 // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 7613 // 7614 //示例值:a0d69e20-1dd1-458b-k525-dfeca4015204 7615 func (builder *CreateMessageReqBodyBuilder) Uuid(uuid string) *CreateMessageReqBodyBuilder { 7616 builder.uuid = uuid 7617 builder.uuidFlag = true 7618 return builder 7619 } 7620 7621 func (builder *CreateMessageReqBodyBuilder) Build() *CreateMessageReqBody { 7622 req := &CreateMessageReqBody{} 7623 if builder.receiveIdFlag { 7624 req.ReceiveId = &builder.receiveId 7625 } 7626 if builder.contentFlag { 7627 req.Content = &builder.content 7628 } 7629 if builder.msgTypeFlag { 7630 req.MsgType = &builder.msgType 7631 } 7632 if builder.uuidFlag { 7633 req.Uuid = &builder.uuid 7634 } 7635 return req 7636 } 7637 7638 type CreateMessagePathReqBodyBuilder struct { 7639 receiveId string // 依据receive_id_type的值,填写对应的消息接收者id 7640 receiveIdFlag bool 7641 content string // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB 7642 contentFlag bool 7643 msgType string // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 7644 msgTypeFlag bool 7645 uuid string // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 7646 uuidFlag bool 7647 } 7648 7649 func NewCreateMessagePathReqBodyBuilder() *CreateMessagePathReqBodyBuilder { 7650 builder := &CreateMessagePathReqBodyBuilder{} 7651 return builder 7652 } 7653 7654 // 依据receive_id_type的值,填写对应的消息接收者id 7655 // 7656 // 示例值:ou_7d8a6e6df7621556ce0d21922b676706ccs 7657 func (builder *CreateMessagePathReqBodyBuilder) ReceiveId(receiveId string) *CreateMessagePathReqBodyBuilder { 7658 builder.receiveId = receiveId 7659 builder.receiveIdFlag = true 7660 return builder 7661 } 7662 7663 // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB 7664 // 7665 // 示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"} 7666 func (builder *CreateMessagePathReqBodyBuilder) Content(content string) *CreateMessagePathReqBodyBuilder { 7667 builder.content = content 7668 builder.contentFlag = true 7669 return builder 7670 } 7671 7672 // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 7673 // 7674 // 示例值:text 7675 func (builder *CreateMessagePathReqBodyBuilder) MsgType(msgType string) *CreateMessagePathReqBodyBuilder { 7676 builder.msgType = msgType 7677 builder.msgTypeFlag = true 7678 return builder 7679 } 7680 7681 // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 7682 // 7683 // 示例值:a0d69e20-1dd1-458b-k525-dfeca4015204 7684 func (builder *CreateMessagePathReqBodyBuilder) Uuid(uuid string) *CreateMessagePathReqBodyBuilder { 7685 builder.uuid = uuid 7686 builder.uuidFlag = true 7687 return builder 7688 } 7689 7690 func (builder *CreateMessagePathReqBodyBuilder) Build() (*CreateMessageReqBody, error) { 7691 req := &CreateMessageReqBody{} 7692 if builder.receiveIdFlag { 7693 req.ReceiveId = &builder.receiveId 7694 } 7695 if builder.contentFlag { 7696 req.Content = &builder.content 7697 } 7698 if builder.msgTypeFlag { 7699 req.MsgType = &builder.msgType 7700 } 7701 if builder.uuidFlag { 7702 req.Uuid = &builder.uuid 7703 } 7704 return req, nil 7705 } 7706 7707 type CreateMessageReqBuilder struct { 7708 apiReq *larkcore.ApiReq 7709 body *CreateMessageReqBody 7710 } 7711 7712 func NewCreateMessageReqBuilder() *CreateMessageReqBuilder { 7713 builder := &CreateMessageReqBuilder{} 7714 builder.apiReq = &larkcore.ApiReq{ 7715 PathParams: larkcore.PathParams{}, 7716 QueryParams: larkcore.QueryParams{}, 7717 } 7718 return builder 7719 } 7720 7721 // 消息接收者id类型 open_id/user_id/union_id/email/chat_id 7722 // 7723 // 示例值:open_id 7724 func (builder *CreateMessageReqBuilder) ReceiveIdType(receiveIdType string) *CreateMessageReqBuilder { 7725 builder.apiReq.QueryParams.Set("receive_id_type", fmt.Sprint(receiveIdType)) 7726 return builder 7727 } 7728 7729 // 给指定用户或者会话发送消息,支持文本、富文本、可交互的[消息卡片](/ssl:ttdoc/ukTMukTMukTM/uczM3QjL3MzN04yNzcDN)、群名片、个人名片、图片、视频、音频、文件、表情包。 7730 func (builder *CreateMessageReqBuilder) Body(body *CreateMessageReqBody) *CreateMessageReqBuilder { 7731 builder.body = body 7732 return builder 7733 } 7734 7735 func (builder *CreateMessageReqBuilder) Build() *CreateMessageReq { 7736 req := &CreateMessageReq{} 7737 req.apiReq = &larkcore.ApiReq{} 7738 req.apiReq.QueryParams = builder.apiReq.QueryParams 7739 req.apiReq.Body = builder.body 7740 return req 7741 } 7742 7743 type CreateMessageReqBody struct { 7744 ReceiveId *string `json:"receive_id,omitempty"` // 依据receive_id_type的值,填写对应的消息接收者id 7745 Content *string `json:"content,omitempty"` // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB 7746 MsgType *string `json:"msg_type,omitempty"` // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 7747 Uuid *string `json:"uuid,omitempty"` // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 7748 } 7749 7750 type CreateMessageReq struct { 7751 apiReq *larkcore.ApiReq 7752 Body *CreateMessageReqBody `body:""` 7753 } 7754 7755 type CreateMessageRespData struct { 7756 MessageId *string `json:"message_id,omitempty"` // 消息id open_message_id 7757 RootId *string `json:"root_id,omitempty"` // 根消息id open_message_id 7758 ParentId *string `json:"parent_id,omitempty"` // 父消息的id open_message_id 7759 MsgType *string `json:"msg_type,omitempty"` // 消息类型 text post card image等等 7760 CreateTime *string `json:"create_time,omitempty"` // 消息生成的时间戳(毫秒) 7761 UpdateTime *string `json:"update_time,omitempty"` // 消息更新的时间戳 7762 Deleted *bool `json:"deleted,omitempty"` // 消息是否被撤回 7763 Updated *bool `json:"updated,omitempty"` // 消息是否被更新 7764 ChatId *string `json:"chat_id,omitempty"` // 所属的群 7765 Sender *Sender `json:"sender,omitempty"` // 发送者,可以是用户或应用 7766 Body *MessageBody `json:"body,omitempty"` // 消息内容,json结构 7767 Mentions []*Mention `json:"mentions,omitempty"` // 被艾特的人或应用的id 7768 UpperMessageId *string `json:"upper_message_id,omitempty"` // 合并消息的上一层级消息id open_message_id 7769 } 7770 7771 type CreateMessageResp struct { 7772 *larkcore.ApiResp `json:"-"` 7773 larkcore.CodeError 7774 Data *CreateMessageRespData `json:"data"` // 业务数据 7775 } 7776 7777 func (resp *CreateMessageResp) Success() bool { 7778 return resp.Code == 0 7779 } 7780 7781 type DeleteMessageReqBuilder struct { 7782 apiReq *larkcore.ApiReq 7783 } 7784 7785 func NewDeleteMessageReqBuilder() *DeleteMessageReqBuilder { 7786 builder := &DeleteMessageReqBuilder{} 7787 builder.apiReq = &larkcore.ApiReq{ 7788 PathParams: larkcore.PathParams{}, 7789 QueryParams: larkcore.QueryParams{}, 7790 } 7791 return builder 7792 } 7793 7794 // 待撤回的消息的ID 7795 // 7796 // 示例值:om_dc13264520392913993dd051dba21dcf 7797 func (builder *DeleteMessageReqBuilder) MessageId(messageId string) *DeleteMessageReqBuilder { 7798 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 7799 return builder 7800 } 7801 7802 func (builder *DeleteMessageReqBuilder) Build() *DeleteMessageReq { 7803 req := &DeleteMessageReq{} 7804 req.apiReq = &larkcore.ApiReq{} 7805 req.apiReq.PathParams = builder.apiReq.PathParams 7806 return req 7807 } 7808 7809 type DeleteMessageReq struct { 7810 apiReq *larkcore.ApiReq 7811 } 7812 7813 type DeleteMessageResp struct { 7814 *larkcore.ApiResp `json:"-"` 7815 larkcore.CodeError 7816 } 7817 7818 func (resp *DeleteMessageResp) Success() bool { 7819 return resp.Code == 0 7820 } 7821 7822 type GetMessageReqBuilder struct { 7823 apiReq *larkcore.ApiReq 7824 } 7825 7826 func NewGetMessageReqBuilder() *GetMessageReqBuilder { 7827 builder := &GetMessageReqBuilder{} 7828 builder.apiReq = &larkcore.ApiReq{ 7829 PathParams: larkcore.PathParams{}, 7830 QueryParams: larkcore.QueryParams{}, 7831 } 7832 return builder 7833 } 7834 7835 // 待获取消息内容的消息的ID 7836 // 7837 // 示例值:om_dc13264520392913993dd051dba21dcf 7838 func (builder *GetMessageReqBuilder) MessageId(messageId string) *GetMessageReqBuilder { 7839 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 7840 return builder 7841 } 7842 7843 func (builder *GetMessageReqBuilder) Build() *GetMessageReq { 7844 req := &GetMessageReq{} 7845 req.apiReq = &larkcore.ApiReq{} 7846 req.apiReq.PathParams = builder.apiReq.PathParams 7847 return req 7848 } 7849 7850 type GetMessageReq struct { 7851 apiReq *larkcore.ApiReq 7852 } 7853 7854 type GetMessageRespData struct { 7855 Items []*Message `json:"items,omitempty"` // - 7856 } 7857 7858 type GetMessageResp struct { 7859 *larkcore.ApiResp `json:"-"` 7860 larkcore.CodeError 7861 Data *GetMessageRespData `json:"data"` // 业务数据 7862 } 7863 7864 func (resp *GetMessageResp) Success() bool { 7865 return resp.Code == 0 7866 } 7867 7868 type ListMessageReqBuilder struct { 7869 apiReq *larkcore.ApiReq 7870 limit int // 最大返回多少记录,当使用迭代器访问时才有效 7871 } 7872 7873 func NewListMessageReqBuilder() *ListMessageReqBuilder { 7874 builder := &ListMessageReqBuilder{} 7875 builder.apiReq = &larkcore.ApiReq{ 7876 PathParams: larkcore.PathParams{}, 7877 QueryParams: larkcore.QueryParams{}, 7878 } 7879 return builder 7880 } 7881 7882 // 最大返回多少记录,当使用迭代器访问时才有效 7883 func (builder *ListMessageReqBuilder) Limit(limit int) *ListMessageReqBuilder { 7884 builder.limit = limit 7885 return builder 7886 } 7887 7888 // 容器类型 ,目前可选值仅有"chat",包含单聊(p2p)和群聊(group) 7889 // 7890 // 示例值:chat 7891 func (builder *ListMessageReqBuilder) ContainerIdType(containerIdType string) *ListMessageReqBuilder { 7892 builder.apiReq.QueryParams.Set("container_id_type", fmt.Sprint(containerIdType)) 7893 return builder 7894 } 7895 7896 // 容器的id,即chat的id 7897 // 7898 // 示例值:oc_234jsi43d3ssi993d43545f 7899 func (builder *ListMessageReqBuilder) ContainerId(containerId string) *ListMessageReqBuilder { 7900 builder.apiReq.QueryParams.Set("container_id", fmt.Sprint(containerId)) 7901 return builder 7902 } 7903 7904 // 历史信息的起始时间(秒级时间戳) 7905 // 7906 // 示例值:1609296809 7907 func (builder *ListMessageReqBuilder) StartTime(startTime string) *ListMessageReqBuilder { 7908 builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime)) 7909 return builder 7910 } 7911 7912 // 历史信息的结束时间(秒级时间戳) 7913 // 7914 // 示例值:1608594809 7915 func (builder *ListMessageReqBuilder) EndTime(endTime string) *ListMessageReqBuilder { 7916 builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime)) 7917 return builder 7918 } 7919 7920 // 7921 // 7922 // 示例值:GxmvlNRvP0NdQZpa7yIqf_Lv_QuBwTQ8tXkX7w-irAghVD_TvuYd1aoJ1LQph86O-XImC4X9j9FhUPhXQDvtrQ== 7923 func (builder *ListMessageReqBuilder) PageToken(pageToken string) *ListMessageReqBuilder { 7924 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 7925 return builder 7926 } 7927 7928 // 7929 // 7930 // 示例值:10 7931 func (builder *ListMessageReqBuilder) PageSize(pageSize int) *ListMessageReqBuilder { 7932 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 7933 return builder 7934 } 7935 7936 func (builder *ListMessageReqBuilder) Build() *ListMessageReq { 7937 req := &ListMessageReq{} 7938 req.apiReq = &larkcore.ApiReq{} 7939 req.Limit = builder.limit 7940 req.apiReq.QueryParams = builder.apiReq.QueryParams 7941 return req 7942 } 7943 7944 type ListMessageReq struct { 7945 apiReq *larkcore.ApiReq 7946 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 7947 7948 } 7949 7950 type ListMessageRespData struct { 7951 HasMore *bool `json:"has_more,omitempty"` // 是否还有后续翻页 7952 PageToken *string `json:"page_token,omitempty"` // 下一页分页的token 7953 Items []*Message `json:"items,omitempty"` // message[] 7954 } 7955 7956 type ListMessageResp struct { 7957 *larkcore.ApiResp `json:"-"` 7958 larkcore.CodeError 7959 Data *ListMessageRespData `json:"data"` // 业务数据 7960 } 7961 7962 func (resp *ListMessageResp) Success() bool { 7963 return resp.Code == 0 7964 } 7965 7966 type PatchMessageReqBodyBuilder struct { 7967 content string // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式 7968 contentFlag bool 7969 } 7970 7971 func NewPatchMessageReqBodyBuilder() *PatchMessageReqBodyBuilder { 7972 builder := &PatchMessageReqBodyBuilder{} 7973 return builder 7974 } 7975 7976 // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式 7977 // 7978 //示例值:参考链接 7979 func (builder *PatchMessageReqBodyBuilder) Content(content string) *PatchMessageReqBodyBuilder { 7980 builder.content = content 7981 builder.contentFlag = true 7982 return builder 7983 } 7984 7985 func (builder *PatchMessageReqBodyBuilder) Build() *PatchMessageReqBody { 7986 req := &PatchMessageReqBody{} 7987 if builder.contentFlag { 7988 req.Content = &builder.content 7989 } 7990 return req 7991 } 7992 7993 type PatchMessagePathReqBodyBuilder struct { 7994 content string // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式 7995 contentFlag bool 7996 } 7997 7998 func NewPatchMessagePathReqBodyBuilder() *PatchMessagePathReqBodyBuilder { 7999 builder := &PatchMessagePathReqBodyBuilder{} 8000 return builder 8001 } 8002 8003 // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式 8004 // 8005 // 示例值:参考链接 8006 func (builder *PatchMessagePathReqBodyBuilder) Content(content string) *PatchMessagePathReqBodyBuilder { 8007 builder.content = content 8008 builder.contentFlag = true 8009 return builder 8010 } 8011 8012 func (builder *PatchMessagePathReqBodyBuilder) Build() (*PatchMessageReqBody, error) { 8013 req := &PatchMessageReqBody{} 8014 if builder.contentFlag { 8015 req.Content = &builder.content 8016 } 8017 return req, nil 8018 } 8019 8020 type PatchMessageReqBuilder struct { 8021 apiReq *larkcore.ApiReq 8022 body *PatchMessageReqBody 8023 } 8024 8025 func NewPatchMessageReqBuilder() *PatchMessageReqBuilder { 8026 builder := &PatchMessageReqBuilder{} 8027 builder.apiReq = &larkcore.ApiReq{ 8028 PathParams: larkcore.PathParams{}, 8029 QueryParams: larkcore.QueryParams{}, 8030 } 8031 return builder 8032 } 8033 8034 // 待更新的消息的ID 8035 // 8036 // 示例值:om_dc13264520392913993dd051dba21dcf 8037 func (builder *PatchMessageReqBuilder) MessageId(messageId string) *PatchMessageReqBuilder { 8038 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8039 return builder 8040 } 8041 8042 // 更新应用已发送的消息卡片内容。 8043 func (builder *PatchMessageReqBuilder) Body(body *PatchMessageReqBody) *PatchMessageReqBuilder { 8044 builder.body = body 8045 return builder 8046 } 8047 8048 func (builder *PatchMessageReqBuilder) Build() *PatchMessageReq { 8049 req := &PatchMessageReq{} 8050 req.apiReq = &larkcore.ApiReq{} 8051 req.apiReq.PathParams = builder.apiReq.PathParams 8052 req.apiReq.Body = builder.body 8053 return req 8054 } 8055 8056 type PatchMessageReqBody struct { 8057 Content *string `json:"content,omitempty"` // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式 8058 } 8059 8060 type PatchMessageReq struct { 8061 apiReq *larkcore.ApiReq 8062 Body *PatchMessageReqBody `body:""` 8063 } 8064 8065 type PatchMessageResp struct { 8066 *larkcore.ApiResp `json:"-"` 8067 larkcore.CodeError 8068 } 8069 8070 func (resp *PatchMessageResp) Success() bool { 8071 return resp.Code == 0 8072 } 8073 8074 type ReadUsersMessageReqBuilder struct { 8075 apiReq *larkcore.ApiReq 8076 } 8077 8078 func NewReadUsersMessageReqBuilder() *ReadUsersMessageReqBuilder { 8079 builder := &ReadUsersMessageReqBuilder{} 8080 builder.apiReq = &larkcore.ApiReq{ 8081 PathParams: larkcore.PathParams{}, 8082 QueryParams: larkcore.QueryParams{}, 8083 } 8084 return builder 8085 } 8086 8087 // 待查询的消息的ID,请注意不支持查询批量消息 8088 // 8089 // 示例值:om_dc13264520392913993dd051dba21dcf 8090 func (builder *ReadUsersMessageReqBuilder) MessageId(messageId string) *ReadUsersMessageReqBuilder { 8091 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8092 return builder 8093 } 8094 8095 // 此次调用中使用的用户ID的类型 8096 // 8097 // 示例值: 8098 func (builder *ReadUsersMessageReqBuilder) UserIdType(userIdType string) *ReadUsersMessageReqBuilder { 8099 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8100 return builder 8101 } 8102 8103 // 此次调用中使用的分页的大小 8104 // 8105 // 示例值:20 8106 func (builder *ReadUsersMessageReqBuilder) PageSize(pageSize int) *ReadUsersMessageReqBuilder { 8107 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 8108 return builder 8109 } 8110 8111 // 下一页分页的token 8112 // 8113 // 示例值:GxmvlNRvP0NdQZpa7yIqf_Lv_QuBwTQ8tXkX7w-irAghVD_TvuYd1aoJ1LQph86O-XImC4X9j9FhUPhXQDvtrQ== 8114 func (builder *ReadUsersMessageReqBuilder) PageToken(pageToken string) *ReadUsersMessageReqBuilder { 8115 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 8116 return builder 8117 } 8118 8119 func (builder *ReadUsersMessageReqBuilder) Build() *ReadUsersMessageReq { 8120 req := &ReadUsersMessageReq{} 8121 req.apiReq = &larkcore.ApiReq{} 8122 req.apiReq.PathParams = builder.apiReq.PathParams 8123 req.apiReq.QueryParams = builder.apiReq.QueryParams 8124 return req 8125 } 8126 8127 type ReadUsersMessageReq struct { 8128 apiReq *larkcore.ApiReq 8129 } 8130 8131 type ReadUsersMessageRespData struct { 8132 Items []*ReadUser `json:"items,omitempty"` // - 8133 HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页 8134 PageToken *string `json:"page_token,omitempty"` // 下一页分页的token 8135 } 8136 8137 type ReadUsersMessageResp struct { 8138 *larkcore.ApiResp `json:"-"` 8139 larkcore.CodeError 8140 Data *ReadUsersMessageRespData `json:"data"` // 业务数据 8141 } 8142 8143 func (resp *ReadUsersMessageResp) Success() bool { 8144 return resp.Code == 0 8145 } 8146 8147 type ReplyMessageReqBodyBuilder struct { 8148 content string // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 8149 contentFlag bool 8150 msgType string // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user 8151 msgTypeFlag bool 8152 uuid string // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 8153 uuidFlag bool 8154 } 8155 8156 func NewReplyMessageReqBodyBuilder() *ReplyMessageReqBodyBuilder { 8157 builder := &ReplyMessageReqBodyBuilder{} 8158 return builder 8159 } 8160 8161 // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 8162 // 8163 //示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"} 8164 func (builder *ReplyMessageReqBodyBuilder) Content(content string) *ReplyMessageReqBodyBuilder { 8165 builder.content = content 8166 builder.contentFlag = true 8167 return builder 8168 } 8169 8170 // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user 8171 // 8172 //示例值:text 8173 func (builder *ReplyMessageReqBodyBuilder) MsgType(msgType string) *ReplyMessageReqBodyBuilder { 8174 builder.msgType = msgType 8175 builder.msgTypeFlag = true 8176 return builder 8177 } 8178 8179 // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 8180 // 8181 //示例值:a0d69e20-1dd1-458b-k525-dfeca4015204 8182 func (builder *ReplyMessageReqBodyBuilder) Uuid(uuid string) *ReplyMessageReqBodyBuilder { 8183 builder.uuid = uuid 8184 builder.uuidFlag = true 8185 return builder 8186 } 8187 8188 func (builder *ReplyMessageReqBodyBuilder) Build() *ReplyMessageReqBody { 8189 req := &ReplyMessageReqBody{} 8190 if builder.contentFlag { 8191 req.Content = &builder.content 8192 } 8193 if builder.msgTypeFlag { 8194 req.MsgType = &builder.msgType 8195 } 8196 if builder.uuidFlag { 8197 req.Uuid = &builder.uuid 8198 } 8199 return req 8200 } 8201 8202 type ReplyMessagePathReqBodyBuilder struct { 8203 content string // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 8204 contentFlag bool 8205 msgType string // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user 8206 msgTypeFlag bool 8207 uuid string // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 8208 uuidFlag bool 8209 } 8210 8211 func NewReplyMessagePathReqBodyBuilder() *ReplyMessagePathReqBodyBuilder { 8212 builder := &ReplyMessagePathReqBodyBuilder{} 8213 return builder 8214 } 8215 8216 // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 8217 // 8218 // 示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"} 8219 func (builder *ReplyMessagePathReqBodyBuilder) Content(content string) *ReplyMessagePathReqBodyBuilder { 8220 builder.content = content 8221 builder.contentFlag = true 8222 return builder 8223 } 8224 8225 // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user 8226 // 8227 // 示例值:text 8228 func (builder *ReplyMessagePathReqBodyBuilder) MsgType(msgType string) *ReplyMessagePathReqBodyBuilder { 8229 builder.msgType = msgType 8230 builder.msgTypeFlag = true 8231 return builder 8232 } 8233 8234 // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 8235 // 8236 // 示例值:a0d69e20-1dd1-458b-k525-dfeca4015204 8237 func (builder *ReplyMessagePathReqBodyBuilder) Uuid(uuid string) *ReplyMessagePathReqBodyBuilder { 8238 builder.uuid = uuid 8239 builder.uuidFlag = true 8240 return builder 8241 } 8242 8243 func (builder *ReplyMessagePathReqBodyBuilder) Build() (*ReplyMessageReqBody, error) { 8244 req := &ReplyMessageReqBody{} 8245 if builder.contentFlag { 8246 req.Content = &builder.content 8247 } 8248 if builder.msgTypeFlag { 8249 req.MsgType = &builder.msgType 8250 } 8251 if builder.uuidFlag { 8252 req.Uuid = &builder.uuid 8253 } 8254 return req, nil 8255 } 8256 8257 type ReplyMessageReqBuilder struct { 8258 apiReq *larkcore.ApiReq 8259 body *ReplyMessageReqBody 8260 } 8261 8262 func NewReplyMessageReqBuilder() *ReplyMessageReqBuilder { 8263 builder := &ReplyMessageReqBuilder{} 8264 builder.apiReq = &larkcore.ApiReq{ 8265 PathParams: larkcore.PathParams{}, 8266 QueryParams: larkcore.QueryParams{}, 8267 } 8268 return builder 8269 } 8270 8271 // 待回复的消息的ID 8272 // 8273 // 示例值:om_dc13264520392913993dd051dba21dcf 8274 func (builder *ReplyMessageReqBuilder) MessageId(messageId string) *ReplyMessageReqBuilder { 8275 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8276 return builder 8277 } 8278 8279 // 回复指定消息,支持文本、富文本、卡片、群名片、个人名片、图片、视频、文件等多种消息类型。 8280 func (builder *ReplyMessageReqBuilder) Body(body *ReplyMessageReqBody) *ReplyMessageReqBuilder { 8281 builder.body = body 8282 return builder 8283 } 8284 8285 func (builder *ReplyMessageReqBuilder) Build() *ReplyMessageReq { 8286 req := &ReplyMessageReq{} 8287 req.apiReq = &larkcore.ApiReq{} 8288 req.apiReq.PathParams = builder.apiReq.PathParams 8289 req.apiReq.Body = builder.body 8290 return req 8291 } 8292 8293 type ReplyMessageReqBody struct { 8294 Content *string `json:"content,omitempty"` // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json) 8295 MsgType *string `json:"msg_type,omitempty"` // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user 8296 Uuid *string `json:"uuid,omitempty"` // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次 8297 } 8298 8299 type ReplyMessageReq struct { 8300 apiReq *larkcore.ApiReq 8301 Body *ReplyMessageReqBody `body:""` 8302 } 8303 8304 type ReplyMessageRespData struct { 8305 MessageId *string `json:"message_id,omitempty"` // 消息id open_message_id 8306 RootId *string `json:"root_id,omitempty"` // 根消息id open_message_id 8307 ParentId *string `json:"parent_id,omitempty"` // 父消息的id open_message_id 8308 MsgType *string `json:"msg_type,omitempty"` // 消息类型 text post card image等等 8309 CreateTime *string `json:"create_time,omitempty"` // 消息生成的时间戳(毫秒) 8310 UpdateTime *string `json:"update_time,omitempty"` // 消息更新的时间戳 8311 Deleted *bool `json:"deleted,omitempty"` // 消息是否被撤回 8312 Updated *bool `json:"updated,omitempty"` // 消息是否被更新 8313 ChatId *string `json:"chat_id,omitempty"` // 所属的群 8314 Sender *Sender `json:"sender,omitempty"` // 发送者,可以是用户或应用 8315 Body *MessageBody `json:"body,omitempty"` // 消息内容,json结构 8316 Mentions []*Mention `json:"mentions,omitempty"` // 被艾特的人或应用的id 8317 UpperMessageId *string `json:"upper_message_id,omitempty"` // 合并消息的上一层级消息id open_message_id 8318 } 8319 8320 type ReplyMessageResp struct { 8321 *larkcore.ApiResp `json:"-"` 8322 larkcore.CodeError 8323 Data *ReplyMessageRespData `json:"data"` // 业务数据 8324 } 8325 8326 func (resp *ReplyMessageResp) Success() bool { 8327 return resp.Code == 0 8328 } 8329 8330 type UrgentAppMessageReqBuilder struct { 8331 apiReq *larkcore.ApiReq 8332 urgentReceivers *UrgentReceivers 8333 } 8334 8335 func NewUrgentAppMessageReqBuilder() *UrgentAppMessageReqBuilder { 8336 builder := &UrgentAppMessageReqBuilder{} 8337 builder.apiReq = &larkcore.ApiReq{ 8338 PathParams: larkcore.PathParams{}, 8339 QueryParams: larkcore.QueryParams{}, 8340 } 8341 return builder 8342 } 8343 8344 // 待加急的消息ID。注意不支持批量消息ID(bm_xxx) 8345 // 8346 // 示例值:om_dc13264520392913993dd051dba21dcf 8347 func (builder *UrgentAppMessageReqBuilder) MessageId(messageId string) *UrgentAppMessageReqBuilder { 8348 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8349 return builder 8350 } 8351 8352 // 此次调用中使用的用户ID的类型 8353 // 8354 // 示例值: 8355 func (builder *UrgentAppMessageReqBuilder) UserIdType(userIdType string) *UrgentAppMessageReqBuilder { 8356 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8357 return builder 8358 } 8359 8360 // 对指定消息进行应用内加急。 8361 func (builder *UrgentAppMessageReqBuilder) UrgentReceivers(urgentReceivers *UrgentReceivers) *UrgentAppMessageReqBuilder { 8362 builder.urgentReceivers = urgentReceivers 8363 return builder 8364 } 8365 8366 func (builder *UrgentAppMessageReqBuilder) Build() *UrgentAppMessageReq { 8367 req := &UrgentAppMessageReq{} 8368 req.apiReq = &larkcore.ApiReq{} 8369 req.apiReq.PathParams = builder.apiReq.PathParams 8370 req.apiReq.QueryParams = builder.apiReq.QueryParams 8371 req.apiReq.Body = builder.urgentReceivers 8372 return req 8373 } 8374 8375 type UrgentAppMessageReq struct { 8376 apiReq *larkcore.ApiReq 8377 UrgentReceivers *UrgentReceivers `body:""` 8378 } 8379 8380 type UrgentAppMessageRespData struct { 8381 InvalidUserIdList []string `json:"invalid_user_id_list,omitempty"` // 无效的用户ID 8382 } 8383 8384 type UrgentAppMessageResp struct { 8385 *larkcore.ApiResp `json:"-"` 8386 larkcore.CodeError 8387 Data *UrgentAppMessageRespData `json:"data"` // 业务数据 8388 } 8389 8390 func (resp *UrgentAppMessageResp) Success() bool { 8391 return resp.Code == 0 8392 } 8393 8394 type UrgentPhoneMessageReqBuilder struct { 8395 apiReq *larkcore.ApiReq 8396 urgentReceivers *UrgentReceivers 8397 } 8398 8399 func NewUrgentPhoneMessageReqBuilder() *UrgentPhoneMessageReqBuilder { 8400 builder := &UrgentPhoneMessageReqBuilder{} 8401 builder.apiReq = &larkcore.ApiReq{ 8402 PathParams: larkcore.PathParams{}, 8403 QueryParams: larkcore.QueryParams{}, 8404 } 8405 return builder 8406 } 8407 8408 // 待加急的消息的ID。注意不支持批量消息ID(bm_xxx) 8409 // 8410 // 示例值:om_dc13264520392913993dd051dba21dcf 8411 func (builder *UrgentPhoneMessageReqBuilder) MessageId(messageId string) *UrgentPhoneMessageReqBuilder { 8412 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8413 return builder 8414 } 8415 8416 // 此次调用中使用的用户ID的类型 8417 // 8418 // 示例值: 8419 func (builder *UrgentPhoneMessageReqBuilder) UserIdType(userIdType string) *UrgentPhoneMessageReqBuilder { 8420 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8421 return builder 8422 } 8423 8424 // 对指定消息进行应用内加急与电话加急 8425 func (builder *UrgentPhoneMessageReqBuilder) UrgentReceivers(urgentReceivers *UrgentReceivers) *UrgentPhoneMessageReqBuilder { 8426 builder.urgentReceivers = urgentReceivers 8427 return builder 8428 } 8429 8430 func (builder *UrgentPhoneMessageReqBuilder) Build() *UrgentPhoneMessageReq { 8431 req := &UrgentPhoneMessageReq{} 8432 req.apiReq = &larkcore.ApiReq{} 8433 req.apiReq.PathParams = builder.apiReq.PathParams 8434 req.apiReq.QueryParams = builder.apiReq.QueryParams 8435 req.apiReq.Body = builder.urgentReceivers 8436 return req 8437 } 8438 8439 type UrgentPhoneMessageReq struct { 8440 apiReq *larkcore.ApiReq 8441 UrgentReceivers *UrgentReceivers `body:""` 8442 } 8443 8444 type UrgentPhoneMessageRespData struct { 8445 InvalidUserIdList []string `json:"invalid_user_id_list,omitempty"` // 无效的用户ID 8446 } 8447 8448 type UrgentPhoneMessageResp struct { 8449 *larkcore.ApiResp `json:"-"` 8450 larkcore.CodeError 8451 Data *UrgentPhoneMessageRespData `json:"data"` // 业务数据 8452 } 8453 8454 func (resp *UrgentPhoneMessageResp) Success() bool { 8455 return resp.Code == 0 8456 } 8457 8458 type UrgentSmsMessageReqBuilder struct { 8459 apiReq *larkcore.ApiReq 8460 urgentReceivers *UrgentReceivers 8461 } 8462 8463 func NewUrgentSmsMessageReqBuilder() *UrgentSmsMessageReqBuilder { 8464 builder := &UrgentSmsMessageReqBuilder{} 8465 builder.apiReq = &larkcore.ApiReq{ 8466 PathParams: larkcore.PathParams{}, 8467 QueryParams: larkcore.QueryParams{}, 8468 } 8469 return builder 8470 } 8471 8472 // 待加急的消息ID。注意不支持批量消息ID(bm_xxx) 8473 // 8474 // 示例值:om_dc13264520392913993dd051dba21dcf 8475 func (builder *UrgentSmsMessageReqBuilder) MessageId(messageId string) *UrgentSmsMessageReqBuilder { 8476 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8477 return builder 8478 } 8479 8480 // 此次调用中使用的用户ID的类型 8481 // 8482 // 示例值: 8483 func (builder *UrgentSmsMessageReqBuilder) UserIdType(userIdType string) *UrgentSmsMessageReqBuilder { 8484 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8485 return builder 8486 } 8487 8488 // 对指定消息进行应用内加急与短信加急。 8489 func (builder *UrgentSmsMessageReqBuilder) UrgentReceivers(urgentReceivers *UrgentReceivers) *UrgentSmsMessageReqBuilder { 8490 builder.urgentReceivers = urgentReceivers 8491 return builder 8492 } 8493 8494 func (builder *UrgentSmsMessageReqBuilder) Build() *UrgentSmsMessageReq { 8495 req := &UrgentSmsMessageReq{} 8496 req.apiReq = &larkcore.ApiReq{} 8497 req.apiReq.PathParams = builder.apiReq.PathParams 8498 req.apiReq.QueryParams = builder.apiReq.QueryParams 8499 req.apiReq.Body = builder.urgentReceivers 8500 return req 8501 } 8502 8503 type UrgentSmsMessageReq struct { 8504 apiReq *larkcore.ApiReq 8505 UrgentReceivers *UrgentReceivers `body:""` 8506 } 8507 8508 type UrgentSmsMessageRespData struct { 8509 InvalidUserIdList []string `json:"invalid_user_id_list,omitempty"` // 无效的用户ID 8510 } 8511 8512 type UrgentSmsMessageResp struct { 8513 *larkcore.ApiResp `json:"-"` 8514 larkcore.CodeError 8515 Data *UrgentSmsMessageRespData `json:"data"` // 业务数据 8516 } 8517 8518 func (resp *UrgentSmsMessageResp) Success() bool { 8519 return resp.Code == 0 8520 } 8521 8522 type CreateMessageReactionReqBodyBuilder struct { 8523 reactionType *Emoji // reaction资源类型 8524 reactionTypeFlag bool 8525 } 8526 8527 func NewCreateMessageReactionReqBodyBuilder() *CreateMessageReactionReqBodyBuilder { 8528 builder := &CreateMessageReactionReqBodyBuilder{} 8529 return builder 8530 } 8531 8532 // reaction资源类型 8533 // 8534 //示例值: 8535 func (builder *CreateMessageReactionReqBodyBuilder) ReactionType(reactionType *Emoji) *CreateMessageReactionReqBodyBuilder { 8536 builder.reactionType = reactionType 8537 builder.reactionTypeFlag = true 8538 return builder 8539 } 8540 8541 func (builder *CreateMessageReactionReqBodyBuilder) Build() *CreateMessageReactionReqBody { 8542 req := &CreateMessageReactionReqBody{} 8543 if builder.reactionTypeFlag { 8544 req.ReactionType = builder.reactionType 8545 } 8546 return req 8547 } 8548 8549 type CreateMessageReactionPathReqBodyBuilder struct { 8550 reactionType *Emoji // reaction资源类型 8551 reactionTypeFlag bool 8552 } 8553 8554 func NewCreateMessageReactionPathReqBodyBuilder() *CreateMessageReactionPathReqBodyBuilder { 8555 builder := &CreateMessageReactionPathReqBodyBuilder{} 8556 return builder 8557 } 8558 8559 // reaction资源类型 8560 // 8561 // 示例值: 8562 func (builder *CreateMessageReactionPathReqBodyBuilder) ReactionType(reactionType *Emoji) *CreateMessageReactionPathReqBodyBuilder { 8563 builder.reactionType = reactionType 8564 builder.reactionTypeFlag = true 8565 return builder 8566 } 8567 8568 func (builder *CreateMessageReactionPathReqBodyBuilder) Build() (*CreateMessageReactionReqBody, error) { 8569 req := &CreateMessageReactionReqBody{} 8570 if builder.reactionTypeFlag { 8571 req.ReactionType = builder.reactionType 8572 } 8573 return req, nil 8574 } 8575 8576 type CreateMessageReactionReqBuilder struct { 8577 apiReq *larkcore.ApiReq 8578 body *CreateMessageReactionReqBody 8579 } 8580 8581 func NewCreateMessageReactionReqBuilder() *CreateMessageReactionReqBuilder { 8582 builder := &CreateMessageReactionReqBuilder{} 8583 builder.apiReq = &larkcore.ApiReq{ 8584 PathParams: larkcore.PathParams{}, 8585 QueryParams: larkcore.QueryParams{}, 8586 } 8587 return builder 8588 } 8589 8590 // 待添加reaction的消息ID 8591 // 8592 // 示例值:om_a8f2294b************a1a38afaac9d 8593 func (builder *CreateMessageReactionReqBuilder) MessageId(messageId string) *CreateMessageReactionReqBuilder { 8594 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8595 return builder 8596 } 8597 8598 // 给指定消息添加指定类型的表情回复(reaction即表情回复,本说明文档统一用“reaction”代称)。 8599 func (builder *CreateMessageReactionReqBuilder) Body(body *CreateMessageReactionReqBody) *CreateMessageReactionReqBuilder { 8600 builder.body = body 8601 return builder 8602 } 8603 8604 func (builder *CreateMessageReactionReqBuilder) Build() *CreateMessageReactionReq { 8605 req := &CreateMessageReactionReq{} 8606 req.apiReq = &larkcore.ApiReq{} 8607 req.apiReq.PathParams = builder.apiReq.PathParams 8608 req.apiReq.Body = builder.body 8609 return req 8610 } 8611 8612 type CreateMessageReactionReqBody struct { 8613 ReactionType *Emoji `json:"reaction_type,omitempty"` // reaction资源类型 8614 } 8615 8616 type CreateMessageReactionReq struct { 8617 apiReq *larkcore.ApiReq 8618 Body *CreateMessageReactionReqBody `body:""` 8619 } 8620 8621 type CreateMessageReactionRespData struct { 8622 ReactionId *string `json:"reaction_id,omitempty"` // reaction资源ID 8623 Operator *Operator `json:"operator,omitempty"` // 添加reaction的操作人 8624 ActionTime *string `json:"action_time,omitempty"` // reaction动作的的unix timestamp(单位:ms) 8625 ReactionType *Emoji `json:"reaction_type,omitempty"` // reaction资源类型 8626 } 8627 8628 type CreateMessageReactionResp struct { 8629 *larkcore.ApiResp `json:"-"` 8630 larkcore.CodeError 8631 Data *CreateMessageReactionRespData `json:"data"` // 业务数据 8632 } 8633 8634 func (resp *CreateMessageReactionResp) Success() bool { 8635 return resp.Code == 0 8636 } 8637 8638 type DeleteMessageReactionReqBuilder struct { 8639 apiReq *larkcore.ApiReq 8640 } 8641 8642 func NewDeleteMessageReactionReqBuilder() *DeleteMessageReactionReqBuilder { 8643 builder := &DeleteMessageReactionReqBuilder{} 8644 builder.apiReq = &larkcore.ApiReq{ 8645 PathParams: larkcore.PathParams{}, 8646 QueryParams: larkcore.QueryParams{}, 8647 } 8648 return builder 8649 } 8650 8651 // 待删除reaction的消息ID 8652 // 8653 // 示例值:om_8964d1b4*********2b31383276113 8654 func (builder *DeleteMessageReactionReqBuilder) MessageId(messageId string) *DeleteMessageReactionReqBuilder { 8655 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8656 return builder 8657 } 8658 8659 // 待删除reaction的资源id 8660 // 8661 // 示例值:ZCaCIjUBVVWSrm5L-3ZTw*************sNa8dHVplEzzSfJVUVLMLcS_ 8662 func (builder *DeleteMessageReactionReqBuilder) ReactionId(reactionId string) *DeleteMessageReactionReqBuilder { 8663 builder.apiReq.PathParams.Set("reaction_id", fmt.Sprint(reactionId)) 8664 return builder 8665 } 8666 8667 func (builder *DeleteMessageReactionReqBuilder) Build() *DeleteMessageReactionReq { 8668 req := &DeleteMessageReactionReq{} 8669 req.apiReq = &larkcore.ApiReq{} 8670 req.apiReq.PathParams = builder.apiReq.PathParams 8671 return req 8672 } 8673 8674 type DeleteMessageReactionReq struct { 8675 apiReq *larkcore.ApiReq 8676 } 8677 8678 type DeleteMessageReactionRespData struct { 8679 ReactionId *string `json:"reaction_id,omitempty"` // reaction资源ID 8680 Operator *Operator `json:"operator,omitempty"` // 添加reaction的操作人 8681 ActionTime *string `json:"action_time,omitempty"` // reaction动作的的unix timestamp(单位:ms) 8682 ReactionType *Emoji `json:"reaction_type,omitempty"` // reaction资源类型 8683 } 8684 8685 type DeleteMessageReactionResp struct { 8686 *larkcore.ApiResp `json:"-"` 8687 larkcore.CodeError 8688 Data *DeleteMessageReactionRespData `json:"data"` // 业务数据 8689 } 8690 8691 func (resp *DeleteMessageReactionResp) Success() bool { 8692 return resp.Code == 0 8693 } 8694 8695 type ListMessageReactionReqBuilder struct { 8696 apiReq *larkcore.ApiReq 8697 limit int // 最大返回多少记录,当使用迭代器访问时才有效 8698 } 8699 8700 func NewListMessageReactionReqBuilder() *ListMessageReactionReqBuilder { 8701 builder := &ListMessageReactionReqBuilder{} 8702 builder.apiReq = &larkcore.ApiReq{ 8703 PathParams: larkcore.PathParams{}, 8704 QueryParams: larkcore.QueryParams{}, 8705 } 8706 return builder 8707 } 8708 8709 // 最大返回多少记录,当使用迭代器访问时才有效 8710 func (builder *ListMessageReactionReqBuilder) Limit(limit int) *ListMessageReactionReqBuilder { 8711 builder.limit = limit 8712 return builder 8713 } 8714 8715 // 待获取reaction的消息ID 8716 // 8717 // 示例值:om_8964d1b4*********2b31383276113 8718 func (builder *ListMessageReactionReqBuilder) MessageId(messageId string) *ListMessageReactionReqBuilder { 8719 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8720 return builder 8721 } 8722 8723 // 待查询消息reaction的类型[emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)。;;- 不传入该参数,表示拉取所有类型reaction 8724 // 8725 // 示例值:LAUGH 8726 func (builder *ListMessageReactionReqBuilder) ReactionType(reactionType string) *ListMessageReactionReqBuilder { 8727 builder.apiReq.QueryParams.Set("reaction_type", fmt.Sprint(reactionType)) 8728 return builder 8729 } 8730 8731 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时,会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 8732 // 8733 // 示例值:YhljsPiGfUgnVAg9urvRFd-BvSqRL20wMZNAWfa9xXkud6UKCybPuUgQ1vM26dj6 8734 func (builder *ListMessageReactionReqBuilder) PageToken(pageToken string) *ListMessageReactionReqBuilder { 8735 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 8736 return builder 8737 } 8738 8739 // 分页大小 8740 // 8741 // 示例值:10 8742 func (builder *ListMessageReactionReqBuilder) PageSize(pageSize int) *ListMessageReactionReqBuilder { 8743 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 8744 return builder 8745 } 8746 8747 // 当操作人为用户时返回用户ID的类型 8748 // 8749 // 示例值: 8750 func (builder *ListMessageReactionReqBuilder) UserIdType(userIdType string) *ListMessageReactionReqBuilder { 8751 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8752 return builder 8753 } 8754 8755 func (builder *ListMessageReactionReqBuilder) Build() *ListMessageReactionReq { 8756 req := &ListMessageReactionReq{} 8757 req.apiReq = &larkcore.ApiReq{} 8758 req.Limit = builder.limit 8759 req.apiReq.PathParams = builder.apiReq.PathParams 8760 req.apiReq.QueryParams = builder.apiReq.QueryParams 8761 return req 8762 } 8763 8764 type ListMessageReactionReq struct { 8765 apiReq *larkcore.ApiReq 8766 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 8767 8768 } 8769 8770 type ListMessageReactionRespData struct { 8771 Items []*MessageReaction `json:"items,omitempty"` // 查询指定reaction_type返回的reaction列表 8772 HasMore *bool `json:"has_more,omitempty"` // 是否还有后续翻页 8773 PageToken *string `json:"page_token,omitempty"` // 下一页分页的token 8774 } 8775 8776 type ListMessageReactionResp struct { 8777 *larkcore.ApiResp `json:"-"` 8778 larkcore.CodeError 8779 Data *ListMessageReactionRespData `json:"data"` // 业务数据 8780 } 8781 8782 func (resp *ListMessageReactionResp) Success() bool { 8783 return resp.Code == 0 8784 } 8785 8786 type GetMessageResourceReqBuilder struct { 8787 apiReq *larkcore.ApiReq 8788 } 8789 8790 func NewGetMessageResourceReqBuilder() *GetMessageResourceReqBuilder { 8791 builder := &GetMessageResourceReqBuilder{} 8792 builder.apiReq = &larkcore.ApiReq{ 8793 PathParams: larkcore.PathParams{}, 8794 QueryParams: larkcore.QueryParams{}, 8795 } 8796 return builder 8797 } 8798 8799 // 待查询资源对应的消息ID 8800 // 8801 // 示例值:om_dc13264520392913993dd051dba21dcf 8802 func (builder *GetMessageResourceReqBuilder) MessageId(messageId string) *GetMessageResourceReqBuilder { 8803 builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId)) 8804 return builder 8805 } 8806 8807 // 待查询资源的key 8808 // 8809 // 示例值:file_456a92d6-c6ea-4de4-ac3f-7afcf44ac78g 8810 func (builder *GetMessageResourceReqBuilder) FileKey(fileKey string) *GetMessageResourceReqBuilder { 8811 builder.apiReq.PathParams.Set("file_key", fmt.Sprint(fileKey)) 8812 return builder 8813 } 8814 8815 // 资源类型,可选"image, file“; image对应消息中的 图片,富文本消息中的图片。 file对应消息中的 文件、音频、视频、(表情包除外) 8816 // 8817 // 示例值:image 8818 func (builder *GetMessageResourceReqBuilder) Type(type_ string) *GetMessageResourceReqBuilder { 8819 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 8820 return builder 8821 } 8822 8823 func (builder *GetMessageResourceReqBuilder) Build() *GetMessageResourceReq { 8824 req := &GetMessageResourceReq{} 8825 req.apiReq = &larkcore.ApiReq{} 8826 req.apiReq.PathParams = builder.apiReq.PathParams 8827 req.apiReq.QueryParams = builder.apiReq.QueryParams 8828 return req 8829 } 8830 8831 type GetMessageResourceReq struct { 8832 apiReq *larkcore.ApiReq 8833 } 8834 8835 type GetMessageResourceResp struct { 8836 *larkcore.ApiResp `json:"-"` 8837 larkcore.CodeError 8838 File io.Reader `json:"-"` 8839 FileName string `json:"-"` 8840 } 8841 8842 func (resp *GetMessageResourceResp) Success() bool { 8843 return resp.Code == 0 8844 } 8845 8846 func (resp *GetMessageResourceResp) WriteFile(fileName string) error { 8847 bs, err := ioutil.ReadAll(resp.File) 8848 if err != nil { 8849 return err 8850 } 8851 8852 err = ioutil.WriteFile(fileName, bs, 0666) 8853 if err != nil { 8854 return err 8855 } 8856 return nil 8857 } 8858 8859 type P2ChatDisbandedV1Data struct { 8860 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8861 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8862 External *bool `json:"external,omitempty"` // 是否是外部群 8863 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者的租户 Key 8864 } 8865 8866 type P2ChatDisbandedV1 struct { 8867 *larkevent.EventV2Base // 事件基础数据 8868 *larkevent.EventReq // 请求原生数据 8869 Event *P2ChatDisbandedV1Data `json:"event"` // 事件内容 8870 } 8871 8872 func (m *P2ChatDisbandedV1) RawReq(req *larkevent.EventReq) { 8873 m.EventReq = req 8874 } 8875 8876 type P2ChatUpdatedV1Data struct { 8877 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8878 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8879 External *bool `json:"external,omitempty"` // 是否是外部群 8880 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者租户 Key 8881 AfterChange *ChatChange `json:"after_change,omitempty"` // 更新后的群信息 8882 BeforeChange *ChatChange `json:"before_change,omitempty"` // 更新前的群信息 8883 ModeratorList *ModeratorList `json:"moderator_list,omitempty"` // 群可发言成员名单的变更信息 8884 } 8885 8886 type P2ChatUpdatedV1 struct { 8887 *larkevent.EventV2Base // 事件基础数据 8888 *larkevent.EventReq // 请求原生数据 8889 Event *P2ChatUpdatedV1Data `json:"event"` // 事件内容 8890 } 8891 8892 func (m *P2ChatUpdatedV1) RawReq(req *larkevent.EventReq) { 8893 m.EventReq = req 8894 } 8895 8896 type P2ChatMemberBotAddedV1Data struct { 8897 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8898 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8899 External *bool `json:"external,omitempty"` // 是否是外部群 8900 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // operator tenant key 8901 } 8902 8903 type P2ChatMemberBotAddedV1 struct { 8904 *larkevent.EventV2Base // 事件基础数据 8905 *larkevent.EventReq // 请求原生数据 8906 Event *P2ChatMemberBotAddedV1Data `json:"event"` // 事件内容 8907 } 8908 8909 func (m *P2ChatMemberBotAddedV1) RawReq(req *larkevent.EventReq) { 8910 m.EventReq = req 8911 } 8912 8913 type P2ChatMemberBotDeletedV1Data struct { 8914 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8915 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8916 External *bool `json:"external,omitempty"` // 是否是外部群 8917 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者租户 Key 8918 } 8919 8920 type P2ChatMemberBotDeletedV1 struct { 8921 *larkevent.EventV2Base // 事件基础数据 8922 *larkevent.EventReq // 请求原生数据 8923 Event *P2ChatMemberBotDeletedV1Data `json:"event"` // 事件内容 8924 } 8925 8926 func (m *P2ChatMemberBotDeletedV1) RawReq(req *larkevent.EventReq) { 8927 m.EventReq = req 8928 } 8929 8930 type P2ChatMemberUserAddedV1Data struct { 8931 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8932 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8933 External *bool `json:"external,omitempty"` // 是否是外部群 8934 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者租户 Key 8935 Users []*ChatMemberUser `json:"users,omitempty"` // 被添加的用户列表 8936 } 8937 8938 type P2ChatMemberUserAddedV1 struct { 8939 *larkevent.EventV2Base // 事件基础数据 8940 *larkevent.EventReq // 请求原生数据 8941 Event *P2ChatMemberUserAddedV1Data `json:"event"` // 事件内容 8942 } 8943 8944 func (m *P2ChatMemberUserAddedV1) RawReq(req *larkevent.EventReq) { 8945 m.EventReq = req 8946 } 8947 8948 type P2ChatMemberUserDeletedV1Data struct { 8949 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8950 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8951 External *bool `json:"external,omitempty"` // 是否是外部群 8952 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者租户 Key 8953 Users []*ChatMemberUser `json:"users,omitempty"` // 被移除用户列表 8954 } 8955 8956 type P2ChatMemberUserDeletedV1 struct { 8957 *larkevent.EventV2Base // 事件基础数据 8958 *larkevent.EventReq // 请求原生数据 8959 Event *P2ChatMemberUserDeletedV1Data `json:"event"` // 事件内容 8960 } 8961 8962 func (m *P2ChatMemberUserDeletedV1) RawReq(req *larkevent.EventReq) { 8963 m.EventReq = req 8964 } 8965 8966 type P2ChatMemberUserWithdrawnV1Data struct { 8967 ChatId *string `json:"chat_id,omitempty"` // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description) 8968 OperatorId *UserId `json:"operator_id,omitempty"` // 用户 ID 8969 External *bool `json:"external,omitempty"` // 是否是外部群 8970 OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // operator tenant key 8971 Users []*ChatMemberUser `json:"users,omitempty"` // 被撤销加群的用户列表 8972 } 8973 8974 type P2ChatMemberUserWithdrawnV1 struct { 8975 *larkevent.EventV2Base // 事件基础数据 8976 *larkevent.EventReq // 请求原生数据 8977 Event *P2ChatMemberUserWithdrawnV1Data `json:"event"` // 事件内容 8978 } 8979 8980 func (m *P2ChatMemberUserWithdrawnV1) RawReq(req *larkevent.EventReq) { 8981 m.EventReq = req 8982 } 8983 8984 type P2MessageReadV1Data struct { 8985 Reader *EventMessageReader `json:"reader,omitempty"` // - 8986 MessageIdList []string `json:"message_id_list,omitempty"` // 消息列表 8987 } 8988 8989 type P2MessageReadV1 struct { 8990 *larkevent.EventV2Base // 事件基础数据 8991 *larkevent.EventReq // 请求原生数据 8992 Event *P2MessageReadV1Data `json:"event"` // 事件内容 8993 } 8994 8995 func (m *P2MessageReadV1) RawReq(req *larkevent.EventReq) { 8996 m.EventReq = req 8997 } 8998 8999 type P2MessageReceiveV1Data struct { 9000 Sender *EventSender `json:"sender,omitempty"` // 事件的发送者 9001 Message *EventMessage `json:"message,omitempty"` // 事件中包含的消息内容 9002 } 9003 9004 type P2MessageReceiveV1 struct { 9005 *larkevent.EventV2Base // 事件基础数据 9006 *larkevent.EventReq // 请求原生数据 9007 Event *P2MessageReceiveV1Data `json:"event"` // 事件内容 9008 } 9009 9010 func (m *P2MessageReceiveV1) RawReq(req *larkevent.EventReq) { 9011 m.EventReq = req 9012 } 9013 9014 type P2MessageReactionCreatedV1Data struct { 9015 MessageId *string `json:"message_id,omitempty"` // 消息的 open_message_id 9016 ReactionType *Emoji `json:"reaction_type,omitempty"` // 表情回复的资源类型 9017 OperatorType *string `json:"operator_type,omitempty"` // 操作人类型 9018 UserId *UserId `json:"user_id,omitempty"` // 用户 ID 9019 AppId *string `json:"app_id,omitempty"` // 应用 ID 9020 ActionTime *string `json:"action_time,omitempty"` // 添加表情回复时间戳(单位:ms) 9021 } 9022 9023 type P2MessageReactionCreatedV1 struct { 9024 *larkevent.EventV2Base // 事件基础数据 9025 *larkevent.EventReq // 请求原生数据 9026 Event *P2MessageReactionCreatedV1Data `json:"event"` // 事件内容 9027 } 9028 9029 func (m *P2MessageReactionCreatedV1) RawReq(req *larkevent.EventReq) { 9030 m.EventReq = req 9031 } 9032 9033 type P2MessageReactionDeletedV1Data struct { 9034 MessageId *string `json:"message_id,omitempty"` // 消息的 open_message_id 9035 ReactionType *Emoji `json:"reaction_type,omitempty"` // 表情回复的资源类型 9036 OperatorType *string `json:"operator_type,omitempty"` // 操作人类型 9037 UserId *UserId `json:"user_id,omitempty"` // 用户 ID 9038 AppId *string `json:"app_id,omitempty"` // 应用 ID 9039 ActionTime *string `json:"action_time,omitempty"` // 表情回复被添加时的时间戳(单位:ms) 9040 } 9041 9042 type P2MessageReactionDeletedV1 struct { 9043 *larkevent.EventV2Base // 事件基础数据 9044 *larkevent.EventReq // 请求原生数据 9045 Event *P2MessageReactionDeletedV1Data `json:"event"` // 事件内容 9046 } 9047 9048 func (m *P2MessageReactionDeletedV1) RawReq(req *larkevent.EventReq) { 9049 m.EventReq = req 9050 } 9051 9052 type ListChatIterator struct { 9053 nextPageToken *string 9054 items []*ListChat 9055 index int 9056 limit int 9057 ctx context.Context 9058 req *ListChatReq 9059 listFunc func(ctx context.Context, req *ListChatReq, options ...larkcore.RequestOptionFunc) (*ListChatResp, error) 9060 options []larkcore.RequestOptionFunc 9061 curlNum int 9062 } 9063 9064 func (iterator *ListChatIterator) Next() (bool, *ListChat, error) { 9065 // 达到最大量,则返回 9066 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 9067 return false, nil, nil 9068 } 9069 9070 // 为0则拉取数据 9071 if iterator.index == 0 || iterator.index >= len(iterator.items) { 9072 if iterator.index != 0 && iterator.nextPageToken == nil { 9073 return false, nil, nil 9074 } 9075 if iterator.nextPageToken != nil { 9076 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 9077 } 9078 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 9079 if err != nil { 9080 return false, nil, err 9081 } 9082 9083 if resp.Code != 0 { 9084 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 9085 } 9086 9087 if len(resp.Data.Items) == 0 { 9088 return false, nil, nil 9089 } 9090 9091 iterator.nextPageToken = resp.Data.PageToken 9092 iterator.items = resp.Data.Items 9093 iterator.index = 0 9094 } 9095 9096 block := iterator.items[iterator.index] 9097 iterator.index++ 9098 iterator.curlNum++ 9099 return true, block, nil 9100 } 9101 9102 func (iterator *ListChatIterator) NextPageToken() *string { 9103 return iterator.nextPageToken 9104 } 9105 9106 type SearchChatIterator struct { 9107 nextPageToken *string 9108 items []*ListChat 9109 index int 9110 limit int 9111 ctx context.Context 9112 req *SearchChatReq 9113 listFunc func(ctx context.Context, req *SearchChatReq, options ...larkcore.RequestOptionFunc) (*SearchChatResp, error) 9114 options []larkcore.RequestOptionFunc 9115 curlNum int 9116 } 9117 9118 func (iterator *SearchChatIterator) Next() (bool, *ListChat, error) { 9119 // 达到最大量,则返回 9120 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 9121 return false, nil, nil 9122 } 9123 9124 // 为0则拉取数据 9125 if iterator.index == 0 || iterator.index >= len(iterator.items) { 9126 if iterator.index != 0 && iterator.nextPageToken == nil { 9127 return false, nil, nil 9128 } 9129 if iterator.nextPageToken != nil { 9130 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 9131 } 9132 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 9133 if err != nil { 9134 return false, nil, err 9135 } 9136 9137 if resp.Code != 0 { 9138 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 9139 } 9140 9141 if len(resp.Data.Items) == 0 { 9142 return false, nil, nil 9143 } 9144 9145 iterator.nextPageToken = resp.Data.PageToken 9146 iterator.items = resp.Data.Items 9147 iterator.index = 0 9148 } 9149 9150 block := iterator.items[iterator.index] 9151 iterator.index++ 9152 iterator.curlNum++ 9153 return true, block, nil 9154 } 9155 9156 func (iterator *SearchChatIterator) NextPageToken() *string { 9157 return iterator.nextPageToken 9158 } 9159 9160 type GetChatMembersIterator struct { 9161 nextPageToken *string 9162 items []*ListMember 9163 index int 9164 limit int 9165 ctx context.Context 9166 req *GetChatMembersReq 9167 listFunc func(ctx context.Context, req *GetChatMembersReq, options ...larkcore.RequestOptionFunc) (*GetChatMembersResp, error) 9168 options []larkcore.RequestOptionFunc 9169 curlNum int 9170 } 9171 9172 func (iterator *GetChatMembersIterator) Next() (bool, *ListMember, error) { 9173 // 达到最大量,则返回 9174 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 9175 return false, nil, nil 9176 } 9177 9178 // 为0则拉取数据 9179 if iterator.index == 0 || iterator.index >= len(iterator.items) { 9180 if iterator.index != 0 && iterator.nextPageToken == nil { 9181 return false, nil, nil 9182 } 9183 if iterator.nextPageToken != nil { 9184 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 9185 } 9186 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 9187 if err != nil { 9188 return false, nil, err 9189 } 9190 9191 if resp.Code != 0 { 9192 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 9193 } 9194 9195 if len(resp.Data.Items) == 0 { 9196 return false, nil, nil 9197 } 9198 9199 iterator.nextPageToken = resp.Data.PageToken 9200 iterator.items = resp.Data.Items 9201 iterator.index = 0 9202 } 9203 9204 block := iterator.items[iterator.index] 9205 iterator.index++ 9206 iterator.curlNum++ 9207 return true, block, nil 9208 } 9209 9210 func (iterator *GetChatMembersIterator) NextPageToken() *string { 9211 return iterator.nextPageToken 9212 } 9213 9214 type GetChatModerationIterator struct { 9215 nextPageToken *string 9216 items []*ListModerator 9217 index int 9218 limit int 9219 ctx context.Context 9220 req *GetChatModerationReq 9221 listFunc func(ctx context.Context, req *GetChatModerationReq, options ...larkcore.RequestOptionFunc) (*GetChatModerationResp, error) 9222 options []larkcore.RequestOptionFunc 9223 curlNum int 9224 } 9225 9226 func (iterator *GetChatModerationIterator) Next() (bool, *ListModerator, error) { 9227 // 达到最大量,则返回 9228 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 9229 return false, nil, nil 9230 } 9231 9232 // 为0则拉取数据 9233 if iterator.index == 0 || iterator.index >= len(iterator.items) { 9234 if iterator.index != 0 && iterator.nextPageToken == nil { 9235 return false, nil, nil 9236 } 9237 if iterator.nextPageToken != nil { 9238 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 9239 } 9240 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 9241 if err != nil { 9242 return false, nil, err 9243 } 9244 9245 if resp.Code != 0 { 9246 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 9247 } 9248 9249 if len(resp.Data.Items) == 0 { 9250 return false, nil, nil 9251 } 9252 9253 iterator.nextPageToken = resp.Data.PageToken 9254 iterator.items = resp.Data.Items 9255 iterator.index = 0 9256 } 9257 9258 block := iterator.items[iterator.index] 9259 iterator.index++ 9260 iterator.curlNum++ 9261 return true, block, nil 9262 } 9263 9264 func (iterator *GetChatModerationIterator) NextPageToken() *string { 9265 return iterator.nextPageToken 9266 } 9267 9268 type ListMessageIterator struct { 9269 nextPageToken *string 9270 items []*Message 9271 index int 9272 limit int 9273 ctx context.Context 9274 req *ListMessageReq 9275 listFunc func(ctx context.Context, req *ListMessageReq, options ...larkcore.RequestOptionFunc) (*ListMessageResp, error) 9276 options []larkcore.RequestOptionFunc 9277 curlNum int 9278 } 9279 9280 func (iterator *ListMessageIterator) Next() (bool, *Message, error) { 9281 // 达到最大量,则返回 9282 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 9283 return false, nil, nil 9284 } 9285 9286 // 为0则拉取数据 9287 if iterator.index == 0 || iterator.index >= len(iterator.items) { 9288 if iterator.index != 0 && iterator.nextPageToken == nil { 9289 return false, nil, nil 9290 } 9291 if iterator.nextPageToken != nil { 9292 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 9293 } 9294 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 9295 if err != nil { 9296 return false, nil, err 9297 } 9298 9299 if resp.Code != 0 { 9300 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 9301 } 9302 9303 if len(resp.Data.Items) == 0 { 9304 return false, nil, nil 9305 } 9306 9307 iterator.nextPageToken = resp.Data.PageToken 9308 iterator.items = resp.Data.Items 9309 iterator.index = 0 9310 } 9311 9312 block := iterator.items[iterator.index] 9313 iterator.index++ 9314 iterator.curlNum++ 9315 return true, block, nil 9316 } 9317 9318 func (iterator *ListMessageIterator) NextPageToken() *string { 9319 return iterator.nextPageToken 9320 } 9321 9322 type ListMessageReactionIterator struct { 9323 nextPageToken *string 9324 items []*MessageReaction 9325 index int 9326 limit int 9327 ctx context.Context 9328 req *ListMessageReactionReq 9329 listFunc func(ctx context.Context, req *ListMessageReactionReq, options ...larkcore.RequestOptionFunc) (*ListMessageReactionResp, error) 9330 options []larkcore.RequestOptionFunc 9331 curlNum int 9332 } 9333 9334 func (iterator *ListMessageReactionIterator) Next() (bool, *MessageReaction, error) { 9335 // 达到最大量,则返回 9336 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 9337 return false, nil, nil 9338 } 9339 9340 // 为0则拉取数据 9341 if iterator.index == 0 || iterator.index >= len(iterator.items) { 9342 if iterator.index != 0 && iterator.nextPageToken == nil { 9343 return false, nil, nil 9344 } 9345 if iterator.nextPageToken != nil { 9346 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 9347 } 9348 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 9349 if err != nil { 9350 return false, nil, err 9351 } 9352 9353 if resp.Code != 0 { 9354 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 9355 } 9356 9357 if len(resp.Data.Items) == 0 { 9358 return false, nil, nil 9359 } 9360 9361 iterator.nextPageToken = resp.Data.PageToken 9362 iterator.items = resp.Data.Items 9363 iterator.index = 0 9364 } 9365 9366 block := iterator.items[iterator.index] 9367 iterator.index++ 9368 iterator.curlNum++ 9369 return true, block, nil 9370 } 9371 9372 func (iterator *ListMessageReactionIterator) NextPageToken() *string { 9373 return iterator.nextPageToken 9374 }