gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/helpdesk/v1/api.go (about) 1 // Package helpdesk 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 larkhelpdesk 15 16 import ( 17 "bytes" 18 "context" 19 "net/http" 20 21 "gitee.com/larksuite/oapi-sdk-go/v3/core" 22 ) 23 24 func NewService(config *larkcore.Config) *HelpdeskService { 25 h := &HelpdeskService{config: config} 26 h.Agent = &agent{service: h} 27 h.AgentSchedules = &agentSchedules{service: h} 28 h.AgentSchedule = &agentSchedule{service: h} 29 h.AgentSkill = &agentSkill{service: h} 30 h.AgentSkillRule = &agentSkillRule{service: h} 31 h.BotMessage = &botMessage{service: h} 32 h.Category = &category{service: h} 33 h.Event = &event{service: h} 34 h.Faq = &faq{service: h} 35 h.Notification = ¬ification{service: h} 36 h.Ticket = &ticket{service: h} 37 h.TicketMessage = &ticketMessage{service: h} 38 h.TicketCustomizedField = &ticketCustomizedField{service: h} 39 return h 40 } 41 42 type HelpdeskService struct { 43 config *larkcore.Config 44 Agent *agent // 客服 45 AgentSchedules *agentSchedules // 客服工作日程 46 AgentSchedule *agentSchedule // agent_schedule 47 AgentSkill *agentSkill // 客服技能 48 AgentSkillRule *agentSkillRule // 客服技能规则 49 BotMessage *botMessage // 机器人消息 50 Category *category // 知识库分类 51 Event *event // 事件订阅 52 Faq *faq // 知识库 53 Notification *notification // 推送中心 54 Ticket *ticket // 工单 55 TicketMessage *ticketMessage // 工单消息 56 TicketCustomizedField *ticketCustomizedField // 工单自定义字段 57 } 58 59 type agent struct { 60 service *HelpdeskService 61 } 62 type agentSchedules struct { 63 service *HelpdeskService 64 } 65 type agentSchedule struct { 66 service *HelpdeskService 67 } 68 type agentSkill struct { 69 service *HelpdeskService 70 } 71 type agentSkillRule struct { 72 service *HelpdeskService 73 } 74 type botMessage struct { 75 service *HelpdeskService 76 } 77 type category struct { 78 service *HelpdeskService 79 } 80 type event struct { 81 service *HelpdeskService 82 } 83 type faq struct { 84 service *HelpdeskService 85 } 86 type notification struct { 87 service *HelpdeskService 88 } 89 type ticket struct { 90 service *HelpdeskService 91 } 92 type ticketMessage struct { 93 service *HelpdeskService 94 } 95 type ticketCustomizedField struct { 96 service *HelpdeskService 97 } 98 99 // 获取客服邮箱地址 100 // 101 // - 该接口用于获取客服邮箱地址 102 // 103 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent/agent_email 104 // 105 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/agentEmail_agent.go 106 func (a *agent) AgentEmail(ctx context.Context, options ...larkcore.RequestOptionFunc) (*AgentEmailAgentResp, error) { 107 // 发起请求 108 apiReq := &larkcore.ApiReq{ 109 PathParams: larkcore.PathParams{}, 110 QueryParams: larkcore.QueryParams{}, 111 } 112 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_emails" 113 apiReq.HttpMethod = http.MethodGet 114 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 115 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 116 if err != nil { 117 return nil, err 118 } 119 // 反序列响应结果 120 resp := &AgentEmailAgentResp{ApiResp: apiResp} 121 err = apiResp.JSONUnmarshalBody(resp) 122 if err != nil { 123 return nil, err 124 } 125 return resp, err 126 } 127 128 // 更新客服信息 129 // 130 // - 更新客服状态等信息 131 // 132 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent/patch 133 // 134 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_agent.go 135 func (a *agent) Patch(ctx context.Context, req *PatchAgentReq, options ...larkcore.RequestOptionFunc) (*PatchAgentResp, error) { 136 // 发起请求 137 apiReq := req.apiReq 138 apiReq.ApiPath = "/open-apis/helpdesk/v1/agents/:agent_id" 139 apiReq.HttpMethod = http.MethodPatch 140 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 141 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 142 if err != nil { 143 return nil, err 144 } 145 // 反序列响应结果 146 resp := &PatchAgentResp{ApiResp: apiResp} 147 err = apiResp.JSONUnmarshalBody(resp) 148 if err != nil { 149 return nil, err 150 } 151 return resp, err 152 } 153 154 // 删除客服 155 // 156 // - 该接口用于删除客服 157 // 158 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent-schedules/delete 159 // 160 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/delete_agentSchedules.go 161 func (a *agentSchedules) Delete(ctx context.Context, req *DeleteAgentSchedulesReq, options ...larkcore.RequestOptionFunc) (*DeleteAgentSchedulesResp, error) { 162 // 发起请求 163 apiReq := req.apiReq 164 apiReq.ApiPath = "/open-apis/helpdesk/v1/agents/:agent_id/schedules" 165 apiReq.HttpMethod = http.MethodDelete 166 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 167 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 168 if err != nil { 169 return nil, err 170 } 171 // 反序列响应结果 172 resp := &DeleteAgentSchedulesResp{ApiResp: apiResp} 173 err = apiResp.JSONUnmarshalBody(resp) 174 if err != nil { 175 return nil, err 176 } 177 return resp, err 178 } 179 180 // 获取客服工作日程; 181 // 182 // - 该接口用于获取客服信息 183 // 184 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent-schedules/get 185 // 186 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_agentSchedules.go 187 func (a *agentSchedules) Get(ctx context.Context, req *GetAgentSchedulesReq, options ...larkcore.RequestOptionFunc) (*GetAgentSchedulesResp, error) { 188 // 发起请求 189 apiReq := req.apiReq 190 apiReq.ApiPath = "/open-apis/helpdesk/v1/agents/:agent_id/schedules" 191 apiReq.HttpMethod = http.MethodGet 192 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 193 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 194 if err != nil { 195 return nil, err 196 } 197 // 反序列响应结果 198 resp := &GetAgentSchedulesResp{ApiResp: apiResp} 199 err = apiResp.JSONUnmarshalBody(resp) 200 if err != nil { 201 return nil, err 202 } 203 return resp, err 204 } 205 206 // 更新客服日程 207 // 208 // - 该接口用于更新客服的日程 209 // 210 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent-schedules/patch 211 // 212 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_agentSchedules.go 213 func (a *agentSchedules) Patch(ctx context.Context, req *PatchAgentSchedulesReq, options ...larkcore.RequestOptionFunc) (*PatchAgentSchedulesResp, error) { 214 // 发起请求 215 apiReq := req.apiReq 216 apiReq.ApiPath = "/open-apis/helpdesk/v1/agents/:agent_id/schedules" 217 apiReq.HttpMethod = http.MethodPatch 218 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 219 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 220 if err != nil { 221 return nil, err 222 } 223 // 反序列响应结果 224 resp := &PatchAgentSchedulesResp{ApiResp: apiResp} 225 err = apiResp.JSONUnmarshalBody(resp) 226 if err != nil { 227 return nil, err 228 } 229 return resp, err 230 } 231 232 // 创建客服 233 // 234 // - 该接口用于创建客服 235 // 236 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_schedule/create 237 // 238 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_agentSchedule.go 239 func (a *agentSchedule) Create(ctx context.Context, req *CreateAgentScheduleReq, options ...larkcore.RequestOptionFunc) (*CreateAgentScheduleResp, error) { 240 // 发起请求 241 apiReq := req.apiReq 242 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_schedules" 243 apiReq.HttpMethod = http.MethodPost 244 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 245 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 246 if err != nil { 247 return nil, err 248 } 249 // 反序列响应结果 250 resp := &CreateAgentScheduleResp{ApiResp: apiResp} 251 err = apiResp.JSONUnmarshalBody(resp) 252 if err != nil { 253 return nil, err 254 } 255 return resp, err 256 } 257 258 // 获取全部客服工作日程 259 // 260 // - 该接口用于获取所有客服信息 261 // 262 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_schedule/list 263 // 264 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_agentSchedule.go 265 func (a *agentSchedule) List(ctx context.Context, req *ListAgentScheduleReq, options ...larkcore.RequestOptionFunc) (*ListAgentScheduleResp, error) { 266 // 发起请求 267 apiReq := req.apiReq 268 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_schedules" 269 apiReq.HttpMethod = http.MethodGet 270 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 271 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 272 if err != nil { 273 return nil, err 274 } 275 // 反序列响应结果 276 resp := &ListAgentScheduleResp{ApiResp: apiResp} 277 err = apiResp.JSONUnmarshalBody(resp) 278 if err != nil { 279 return nil, err 280 } 281 return resp, err 282 } 283 284 // 创建客服技能 285 // 286 // - 该接口用于创建客服技能 287 // 288 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_skill/create 289 // 290 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_agentSkill.go 291 func (a *agentSkill) Create(ctx context.Context, req *CreateAgentSkillReq, options ...larkcore.RequestOptionFunc) (*CreateAgentSkillResp, error) { 292 // 发起请求 293 apiReq := req.apiReq 294 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_skills" 295 apiReq.HttpMethod = http.MethodPost 296 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 297 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 298 if err != nil { 299 return nil, err 300 } 301 // 反序列响应结果 302 resp := &CreateAgentSkillResp{ApiResp: apiResp} 303 err = apiResp.JSONUnmarshalBody(resp) 304 if err != nil { 305 return nil, err 306 } 307 return resp, err 308 } 309 310 // 删除客服技能 311 // 312 // - 该接口用于删除客服技能 313 // 314 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_skill/delete 315 // 316 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/delete_agentSkill.go 317 func (a *agentSkill) Delete(ctx context.Context, req *DeleteAgentSkillReq, options ...larkcore.RequestOptionFunc) (*DeleteAgentSkillResp, error) { 318 // 发起请求 319 apiReq := req.apiReq 320 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_skills/:agent_skill_id" 321 apiReq.HttpMethod = http.MethodDelete 322 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 323 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 324 if err != nil { 325 return nil, err 326 } 327 // 反序列响应结果 328 resp := &DeleteAgentSkillResp{ApiResp: apiResp} 329 err = apiResp.JSONUnmarshalBody(resp) 330 if err != nil { 331 return nil, err 332 } 333 return resp, err 334 } 335 336 // 获取客服技能 337 // 338 // - 该接口用于获取客服技能 339 // 340 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_skill/get 341 // 342 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_agentSkill.go 343 func (a *agentSkill) Get(ctx context.Context, req *GetAgentSkillReq, options ...larkcore.RequestOptionFunc) (*GetAgentSkillResp, error) { 344 // 发起请求 345 apiReq := req.apiReq 346 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_skills/:agent_skill_id" 347 apiReq.HttpMethod = http.MethodGet 348 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 349 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 350 if err != nil { 351 return nil, err 352 } 353 // 反序列响应结果 354 resp := &GetAgentSkillResp{ApiResp: apiResp} 355 err = apiResp.JSONUnmarshalBody(resp) 356 if err != nil { 357 return nil, err 358 } 359 return resp, err 360 } 361 362 // 获取全部客服技能 363 // 364 // - 获取全部客服技能 365 // 366 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_skill/list 367 // 368 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_agentSkill.go 369 func (a *agentSkill) List(ctx context.Context, options ...larkcore.RequestOptionFunc) (*ListAgentSkillResp, error) { 370 // 发起请求 371 apiReq := &larkcore.ApiReq{ 372 PathParams: larkcore.PathParams{}, 373 QueryParams: larkcore.QueryParams{}, 374 } 375 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_skills" 376 apiReq.HttpMethod = http.MethodGet 377 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 378 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 379 if err != nil { 380 return nil, err 381 } 382 // 反序列响应结果 383 resp := &ListAgentSkillResp{ApiResp: apiResp} 384 err = apiResp.JSONUnmarshalBody(resp) 385 if err != nil { 386 return nil, err 387 } 388 return resp, err 389 } 390 391 // 更新客服技能 392 // 393 // - 该接口用于更新客服技能 394 // 395 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_skill/patch 396 // 397 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_agentSkill.go 398 func (a *agentSkill) Patch(ctx context.Context, req *PatchAgentSkillReq, options ...larkcore.RequestOptionFunc) (*PatchAgentSkillResp, error) { 399 // 发起请求 400 apiReq := req.apiReq 401 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_skills/:agent_skill_id" 402 apiReq.HttpMethod = http.MethodPatch 403 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 404 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 405 if err != nil { 406 return nil, err 407 } 408 // 反序列响应结果 409 resp := &PatchAgentSkillResp{ApiResp: apiResp} 410 err = apiResp.JSONUnmarshalBody(resp) 411 if err != nil { 412 return nil, err 413 } 414 return resp, err 415 } 416 417 // 获取客服技能列表 418 // 419 // - 该接口用于获取全部客服技能。仅支持自建应用。 420 // 421 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/agent_skill_rule/list 422 // 423 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_agentSkillRule.go 424 func (a *agentSkillRule) List(ctx context.Context, options ...larkcore.RequestOptionFunc) (*ListAgentSkillRuleResp, error) { 425 // 发起请求 426 apiReq := &larkcore.ApiReq{ 427 PathParams: larkcore.PathParams{}, 428 QueryParams: larkcore.QueryParams{}, 429 } 430 apiReq.ApiPath = "/open-apis/helpdesk/v1/agent_skill_rules" 431 apiReq.HttpMethod = http.MethodGet 432 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 433 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 434 if err != nil { 435 return nil, err 436 } 437 // 反序列响应结果 438 resp := &ListAgentSkillRuleResp{ApiResp: apiResp} 439 err = apiResp.JSONUnmarshalBody(resp) 440 if err != nil { 441 return nil, err 442 } 443 return resp, err 444 } 445 446 // 服务台机器人发送消息 447 // 448 // - 通过服务台机器人给指定用户的服务台专属群或私聊发送消息,支持文本、富文本、卡片、图片。 449 // 450 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/bot-message/create 451 // 452 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_botMessage.go 453 func (b *botMessage) Create(ctx context.Context, req *CreateBotMessageReq, options ...larkcore.RequestOptionFunc) (*CreateBotMessageResp, error) { 454 // 发起请求 455 apiReq := req.apiReq 456 apiReq.ApiPath = "/open-apis/helpdesk/v1/message" 457 apiReq.HttpMethod = http.MethodPost 458 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 459 apiResp, err := larkcore.Request(ctx, apiReq, b.service.config, options...) 460 if err != nil { 461 return nil, err 462 } 463 // 反序列响应结果 464 resp := &CreateBotMessageResp{ApiResp: apiResp} 465 err = apiResp.JSONUnmarshalBody(resp) 466 if err != nil { 467 return nil, err 468 } 469 return resp, err 470 } 471 472 // 创建知识库分类 473 // 474 // - 该接口用于创建知识库分类。 475 // 476 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/category/create 477 // 478 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_category.go 479 func (c *category) Create(ctx context.Context, req *CreateCategoryReq, options ...larkcore.RequestOptionFunc) (*CreateCategoryResp, error) { 480 // 发起请求 481 apiReq := req.apiReq 482 apiReq.ApiPath = "/open-apis/helpdesk/v1/categories" 483 apiReq.HttpMethod = http.MethodPost 484 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 485 apiResp, err := larkcore.Request(ctx, apiReq, c.service.config, options...) 486 if err != nil { 487 return nil, err 488 } 489 // 反序列响应结果 490 resp := &CreateCategoryResp{ApiResp: apiResp} 491 err = apiResp.JSONUnmarshalBody(resp) 492 if err != nil { 493 return nil, err 494 } 495 return resp, err 496 } 497 498 // 删除知识库分类详情 499 // 500 // - 该接口用于删除知识库分类详情。 501 // 502 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/category/delete 503 // 504 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/delete_category.go 505 func (c *category) Delete(ctx context.Context, req *DeleteCategoryReq, options ...larkcore.RequestOptionFunc) (*DeleteCategoryResp, error) { 506 // 发起请求 507 apiReq := req.apiReq 508 apiReq.ApiPath = "/open-apis/helpdesk/v1/categories/:id" 509 apiReq.HttpMethod = http.MethodDelete 510 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 511 apiResp, err := larkcore.Request(ctx, apiReq, c.service.config, options...) 512 if err != nil { 513 return nil, err 514 } 515 // 反序列响应结果 516 resp := &DeleteCategoryResp{ApiResp: apiResp} 517 err = apiResp.JSONUnmarshalBody(resp) 518 if err != nil { 519 return nil, err 520 } 521 return resp, err 522 } 523 524 // 获取知识库分类 525 // 526 // - 该接口用于获取知识库分类。 527 // 528 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/category/get 529 // 530 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_category.go 531 func (c *category) Get(ctx context.Context, req *GetCategoryReq, options ...larkcore.RequestOptionFunc) (*GetCategoryResp, error) { 532 // 发起请求 533 apiReq := req.apiReq 534 apiReq.ApiPath = "/open-apis/helpdesk/v1/categories/:id" 535 apiReq.HttpMethod = http.MethodGet 536 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 537 apiResp, err := larkcore.Request(ctx, apiReq, c.service.config, options...) 538 if err != nil { 539 return nil, err 540 } 541 // 反序列响应结果 542 resp := &GetCategoryResp{ApiResp: apiResp} 543 err = apiResp.JSONUnmarshalBody(resp) 544 if err != nil { 545 return nil, err 546 } 547 return resp, err 548 } 549 550 // 获取全部知识库分类 - meta 551 // 552 // - 该接口用于获取服务台知识库所有分类 553 // 554 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/category/list 555 // 556 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_category.go 557 func (c *category) List(ctx context.Context, req *ListCategoryReq, options ...larkcore.RequestOptionFunc) (*ListCategoryResp, error) { 558 // 发起请求 559 apiReq := req.apiReq 560 apiReq.ApiPath = "/open-apis/helpdesk/v1/categories" 561 apiReq.HttpMethod = http.MethodGet 562 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 563 apiResp, err := larkcore.Request(ctx, apiReq, c.service.config, options...) 564 if err != nil { 565 return nil, err 566 } 567 // 反序列响应结果 568 resp := &ListCategoryResp{ApiResp: apiResp} 569 err = apiResp.JSONUnmarshalBody(resp) 570 if err != nil { 571 return nil, err 572 } 573 return resp, err 574 } 575 576 // 更新知识库分类详情 577 // 578 // - 该接口用于更新知识库分类详情。 579 // 580 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/category/patch 581 // 582 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_category.go 583 func (c *category) Patch(ctx context.Context, req *PatchCategoryReq, options ...larkcore.RequestOptionFunc) (*PatchCategoryResp, error) { 584 // 发起请求 585 apiReq := req.apiReq 586 apiReq.ApiPath = "/open-apis/helpdesk/v1/categories/:id" 587 apiReq.HttpMethod = http.MethodPatch 588 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 589 apiResp, err := larkcore.Request(ctx, apiReq, c.service.config, options...) 590 if err != nil { 591 return nil, err 592 } 593 // 反序列响应结果 594 resp := &PatchCategoryResp{ApiResp: apiResp} 595 err = apiResp.JSONUnmarshalBody(resp) 596 if err != nil { 597 return nil, err 598 } 599 return resp, err 600 } 601 602 // 订阅服务台事件 603 // 604 // - 用于订阅服务台事件 605 // 606 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/event/subscribe 607 // 608 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/subscribe_event.go 609 func (e *event) Subscribe(ctx context.Context, req *SubscribeEventReq, options ...larkcore.RequestOptionFunc) (*SubscribeEventResp, error) { 610 // 发起请求 611 apiReq := req.apiReq 612 apiReq.ApiPath = "/open-apis/helpdesk/v1/events/subscribe" 613 apiReq.HttpMethod = http.MethodPost 614 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 615 apiResp, err := larkcore.Request(ctx, apiReq, e.service.config, options...) 616 if err != nil { 617 return nil, err 618 } 619 // 反序列响应结果 620 resp := &SubscribeEventResp{ApiResp: apiResp} 621 err = apiResp.JSONUnmarshalBody(resp) 622 if err != nil { 623 return nil, err 624 } 625 return resp, err 626 } 627 628 // 取消订阅服务台事件 629 // 630 // - 用于取消订阅服务台事件 631 // 632 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/event/unsubscribe 633 // 634 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/unsubscribe_event.go 635 func (e *event) Unsubscribe(ctx context.Context, req *UnsubscribeEventReq, options ...larkcore.RequestOptionFunc) (*UnsubscribeEventResp, error) { 636 // 发起请求 637 apiReq := req.apiReq 638 apiReq.ApiPath = "/open-apis/helpdesk/v1/events/unsubscribe" 639 apiReq.HttpMethod = http.MethodPost 640 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 641 apiResp, err := larkcore.Request(ctx, apiReq, e.service.config, options...) 642 if err != nil { 643 return nil, err 644 } 645 // 反序列响应结果 646 resp := &UnsubscribeEventResp{ApiResp: apiResp} 647 err = apiResp.JSONUnmarshalBody(resp) 648 if err != nil { 649 return nil, err 650 } 651 return resp, err 652 } 653 654 // 创建知识库 655 // 656 // - 该接口用于创建知识库。 657 // 658 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/create 659 // 660 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_faq.go 661 func (f *faq) Create(ctx context.Context, req *CreateFaqReq, options ...larkcore.RequestOptionFunc) (*CreateFaqResp, error) { 662 // 发起请求 663 apiReq := req.apiReq 664 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs" 665 apiReq.HttpMethod = http.MethodPost 666 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 667 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 668 if err != nil { 669 return nil, err 670 } 671 // 反序列响应结果 672 resp := &CreateFaqResp{ApiResp: apiResp} 673 err = apiResp.JSONUnmarshalBody(resp) 674 if err != nil { 675 return nil, err 676 } 677 return resp, err 678 } 679 680 // 删除知识库 681 // 682 // - 该接口用于删除知识库。 683 // 684 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/delete 685 // 686 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/delete_faq.go 687 func (f *faq) Delete(ctx context.Context, req *DeleteFaqReq, options ...larkcore.RequestOptionFunc) (*DeleteFaqResp, error) { 688 // 发起请求 689 apiReq := req.apiReq 690 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs/:id" 691 apiReq.HttpMethod = http.MethodDelete 692 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 693 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 694 if err != nil { 695 return nil, err 696 } 697 // 反序列响应结果 698 resp := &DeleteFaqResp{ApiResp: apiResp} 699 err = apiResp.JSONUnmarshalBody(resp) 700 if err != nil { 701 return nil, err 702 } 703 return resp, err 704 } 705 706 // 获取知识库图像 707 // 708 // - 该接口用于获取知识库图像。 709 // 710 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/faq_image 711 // 712 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/faqImage_faq.go 713 func (f *faq) FaqImage(ctx context.Context, req *FaqImageFaqReq, options ...larkcore.RequestOptionFunc) (*FaqImageFaqResp, error) { 714 // 发起请求 715 apiReq := req.apiReq 716 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs/:id/image/:image_key" 717 apiReq.HttpMethod = http.MethodGet 718 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 719 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 720 if err != nil { 721 return nil, err 722 } 723 // 反序列响应结果 724 resp := &FaqImageFaqResp{ApiResp: apiResp} 725 // 如果是下载,则设置响应结果 726 if apiResp.StatusCode == http.StatusOK { 727 resp.File = bytes.NewBuffer(apiResp.RawBody) 728 resp.FileName = larkcore.FileNameByHeader(apiResp.Header) 729 return resp, err 730 } 731 err = apiResp.JSONUnmarshalBody(resp) 732 if err != nil { 733 return nil, err 734 } 735 return resp, err 736 } 737 738 // 获取知识库详情 739 // 740 // - 该接口用于获取服务台知识库详情。 741 // 742 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/get 743 // 744 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_faq.go 745 func (f *faq) Get(ctx context.Context, req *GetFaqReq, options ...larkcore.RequestOptionFunc) (*GetFaqResp, error) { 746 // 发起请求 747 apiReq := req.apiReq 748 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs/:id" 749 apiReq.HttpMethod = http.MethodGet 750 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 751 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 752 if err != nil { 753 return nil, err 754 } 755 // 反序列响应结果 756 resp := &GetFaqResp{ApiResp: apiResp} 757 err = apiResp.JSONUnmarshalBody(resp) 758 if err != nil { 759 return nil, err 760 } 761 return resp, err 762 } 763 764 // 获取全部知识库详情 765 // 766 // - 该接口用于获取服务台知识库详情。 767 // 768 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/list 769 // 770 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_faq.go 771 func (f *faq) List(ctx context.Context, req *ListFaqReq, options ...larkcore.RequestOptionFunc) (*ListFaqResp, error) { 772 // 发起请求 773 apiReq := req.apiReq 774 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs" 775 apiReq.HttpMethod = http.MethodGet 776 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 777 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 778 if err != nil { 779 return nil, err 780 } 781 // 反序列响应结果 782 resp := &ListFaqResp{ApiResp: apiResp} 783 err = apiResp.JSONUnmarshalBody(resp) 784 if err != nil { 785 return nil, err 786 } 787 return resp, err 788 } 789 func (f *faq) ListByIterator(ctx context.Context, req *ListFaqReq, options ...larkcore.RequestOptionFunc) (*ListFaqIterator, error) { 790 return &ListFaqIterator{ 791 ctx: ctx, 792 req: req, 793 listFunc: f.List, 794 options: options, 795 limit: req.Limit}, nil 796 } 797 798 // 修改知识库 799 // 800 // - 该接口用于修改知识库。 801 // 802 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/patch 803 // 804 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_faq.go 805 func (f *faq) Patch(ctx context.Context, req *PatchFaqReq, options ...larkcore.RequestOptionFunc) (*PatchFaqResp, error) { 806 // 发起请求 807 apiReq := req.apiReq 808 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs/:id" 809 apiReq.HttpMethod = http.MethodPatch 810 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 811 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 812 if err != nil { 813 return nil, err 814 } 815 // 反序列响应结果 816 resp := &PatchFaqResp{ApiResp: apiResp} 817 err = apiResp.JSONUnmarshalBody(resp) 818 if err != nil { 819 return nil, err 820 } 821 return resp, err 822 } 823 824 // 搜索知识库 825 // 826 // - 该接口用于搜索服务台知识库。 827 // 828 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/faq/search 829 // 830 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/search_faq.go 831 func (f *faq) Search(ctx context.Context, req *SearchFaqReq, options ...larkcore.RequestOptionFunc) (*SearchFaqResp, error) { 832 // 发起请求 833 apiReq := req.apiReq 834 apiReq.ApiPath = "/open-apis/helpdesk/v1/faqs/search" 835 apiReq.HttpMethod = http.MethodGet 836 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 837 apiResp, err := larkcore.Request(ctx, apiReq, f.service.config, options...) 838 if err != nil { 839 return nil, err 840 } 841 // 反序列响应结果 842 resp := &SearchFaqResp{ApiResp: apiResp} 843 err = apiResp.JSONUnmarshalBody(resp) 844 if err != nil { 845 return nil, err 846 } 847 return resp, err 848 } 849 func (f *faq) SearchByIterator(ctx context.Context, req *SearchFaqReq, options ...larkcore.RequestOptionFunc) (*SearchFaqIterator, error) { 850 return &SearchFaqIterator{ 851 ctx: ctx, 852 req: req, 853 listFunc: f.Search, 854 options: options, 855 limit: req.Limit}, nil 856 } 857 858 // 取消审核 859 // 860 // - 提交审核后,如果需要取消审核,则调用此接口 861 // 862 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/cancel_approve 863 // 864 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/cancelApprove_notification.go 865 func (n *notification) CancelApprove(ctx context.Context, req *CancelApproveNotificationReq, options ...larkcore.RequestOptionFunc) (*CancelApproveNotificationResp, error) { 866 // 发起请求 867 apiReq := req.apiReq 868 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id/cancel_approve" 869 apiReq.HttpMethod = http.MethodPost 870 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 871 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 872 if err != nil { 873 return nil, err 874 } 875 // 反序列响应结果 876 resp := &CancelApproveNotificationResp{ApiResp: apiResp} 877 err = apiResp.JSONUnmarshalBody(resp) 878 if err != nil { 879 return nil, err 880 } 881 return resp, err 882 } 883 884 // 取消推送 885 // 886 // - 取消推送接口,审核通过后待调度可以调用,发送过程中可以调用(会撤回已发送的消息),发送完成后可以需要推送(会撤回所有已发送的消息) 887 // 888 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/cancel_send 889 // 890 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/cancelSend_notification.go 891 func (n *notification) CancelSend(ctx context.Context, req *CancelSendNotificationReq, options ...larkcore.RequestOptionFunc) (*CancelSendNotificationResp, error) { 892 // 发起请求 893 apiReq := req.apiReq 894 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id/cancel_send" 895 apiReq.HttpMethod = http.MethodPost 896 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 897 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 898 if err != nil { 899 return nil, err 900 } 901 // 反序列响应结果 902 resp := &CancelSendNotificationResp{ApiResp: apiResp} 903 err = apiResp.JSONUnmarshalBody(resp) 904 if err != nil { 905 return nil, err 906 } 907 return resp, err 908 } 909 910 // 创建推送 911 // 912 // - 调用接口创建推送,创建成功后为草稿状态 913 // 914 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/create 915 // 916 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_notification.go 917 func (n *notification) Create(ctx context.Context, req *CreateNotificationReq, options ...larkcore.RequestOptionFunc) (*CreateNotificationResp, error) { 918 // 发起请求 919 apiReq := req.apiReq 920 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications" 921 apiReq.HttpMethod = http.MethodPost 922 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 923 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 924 if err != nil { 925 return nil, err 926 } 927 // 反序列响应结果 928 resp := &CreateNotificationResp{ApiResp: apiResp} 929 err = apiResp.JSONUnmarshalBody(resp) 930 if err != nil { 931 return nil, err 932 } 933 return resp, err 934 } 935 936 // 执行推送 937 // 938 // - 审核通过后调用此接口设置推送时间,等待调度系统调度,发送消息 939 // 940 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/execute_send 941 // 942 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/executeSend_notification.go 943 func (n *notification) ExecuteSend(ctx context.Context, req *ExecuteSendNotificationReq, options ...larkcore.RequestOptionFunc) (*ExecuteSendNotificationResp, error) { 944 // 发起请求 945 apiReq := req.apiReq 946 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id/execute_send" 947 apiReq.HttpMethod = http.MethodPost 948 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 949 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 950 if err != nil { 951 return nil, err 952 } 953 // 反序列响应结果 954 resp := &ExecuteSendNotificationResp{ApiResp: apiResp} 955 err = apiResp.JSONUnmarshalBody(resp) 956 if err != nil { 957 return nil, err 958 } 959 return resp, err 960 } 961 962 // 查询推送 963 // 964 // - 查询推送详情 965 // 966 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/get 967 // 968 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_notification.go 969 func (n *notification) Get(ctx context.Context, req *GetNotificationReq, options ...larkcore.RequestOptionFunc) (*GetNotificationResp, error) { 970 // 发起请求 971 apiReq := req.apiReq 972 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id" 973 apiReq.HttpMethod = http.MethodGet 974 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 975 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 976 if err != nil { 977 return nil, err 978 } 979 // 反序列响应结果 980 resp := &GetNotificationResp{ApiResp: apiResp} 981 err = apiResp.JSONUnmarshalBody(resp) 982 if err != nil { 983 return nil, err 984 } 985 return resp, err 986 } 987 988 // 更新推送 989 // 990 // - 更新推送信息,只有在草稿状态下才可以调用此接口进行更新 991 // 992 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/patch 993 // 994 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_notification.go 995 func (n *notification) Patch(ctx context.Context, req *PatchNotificationReq, options ...larkcore.RequestOptionFunc) (*PatchNotificationResp, error) { 996 // 发起请求 997 apiReq := req.apiReq 998 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id" 999 apiReq.HttpMethod = http.MethodPatch 1000 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1001 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 1002 if err != nil { 1003 return nil, err 1004 } 1005 // 反序列响应结果 1006 resp := &PatchNotificationResp{ApiResp: apiResp} 1007 err = apiResp.JSONUnmarshalBody(resp) 1008 if err != nil { 1009 return nil, err 1010 } 1011 return resp, err 1012 } 1013 1014 // 预览推送内容 1015 // 1016 // - 在正式执行推送之前是可以调用此接口预览设置的推送内容 1017 // 1018 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/preview 1019 // 1020 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/preview_notification.go 1021 func (n *notification) Preview(ctx context.Context, req *PreviewNotificationReq, options ...larkcore.RequestOptionFunc) (*PreviewNotificationResp, error) { 1022 // 发起请求 1023 apiReq := req.apiReq 1024 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id/preview" 1025 apiReq.HttpMethod = http.MethodPost 1026 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1027 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 1028 if err != nil { 1029 return nil, err 1030 } 1031 // 反序列响应结果 1032 resp := &PreviewNotificationResp{ApiResp: apiResp} 1033 err = apiResp.JSONUnmarshalBody(resp) 1034 if err != nil { 1035 return nil, err 1036 } 1037 return resp, err 1038 } 1039 1040 // 提交审核 1041 // 1042 // - 正常情况下调用创建推送接口后,就可以调用提交审核接口,如果创建人是服务台owner则会自动审核通过,否则会通知服务台owner审核此推送信息 1043 // 1044 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/notification/submit_approve 1045 // 1046 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/submitApprove_notification.go 1047 func (n *notification) SubmitApprove(ctx context.Context, req *SubmitApproveNotificationReq, options ...larkcore.RequestOptionFunc) (*SubmitApproveNotificationResp, error) { 1048 // 发起请求 1049 apiReq := req.apiReq 1050 apiReq.ApiPath = "/open-apis/helpdesk/v1/notifications/:notification_id/submit_approve" 1051 apiReq.HttpMethod = http.MethodPost 1052 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1053 apiResp, err := larkcore.Request(ctx, apiReq, n.service.config, options...) 1054 if err != nil { 1055 return nil, err 1056 } 1057 // 反序列响应结果 1058 resp := &SubmitApproveNotificationResp{ApiResp: apiResp} 1059 err = apiResp.JSONUnmarshalBody(resp) 1060 if err != nil { 1061 return nil, err 1062 } 1063 return resp, err 1064 } 1065 1066 // 回复用户提问结果至工单 1067 // 1068 // - 该接口用于回复用户提问结果至工单,需要工单仍处于进行中且未接入人工状态。仅支持自建应用。 1069 // 1070 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/answer_user_query 1071 // 1072 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/answerUserQuery_ticket.go 1073 func (t *ticket) AnswerUserQuery(ctx context.Context, req *AnswerUserQueryTicketReq, options ...larkcore.RequestOptionFunc) (*AnswerUserQueryTicketResp, error) { 1074 // 发起请求 1075 apiReq := req.apiReq 1076 apiReq.ApiPath = "/open-apis/helpdesk/v1/tickets/:ticket_id/answer_user_query" 1077 apiReq.HttpMethod = http.MethodPost 1078 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1079 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1080 if err != nil { 1081 return nil, err 1082 } 1083 // 反序列响应结果 1084 resp := &AnswerUserQueryTicketResp{ApiResp: apiResp} 1085 err = apiResp.JSONUnmarshalBody(resp) 1086 if err != nil { 1087 return nil, err 1088 } 1089 return resp, err 1090 } 1091 1092 // 获取服务台自定义字段详情 1093 // 1094 // - 该接口用于获取服务台自定义字段详情。 1095 // 1096 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/customized_fields 1097 // 1098 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/customizedFields_ticket.go 1099 func (t *ticket) CustomizedFields(ctx context.Context, req *CustomizedFieldsTicketReq, options ...larkcore.RequestOptionFunc) (*CustomizedFieldsTicketResp, error) { 1100 // 发起请求 1101 apiReq := req.apiReq 1102 apiReq.ApiPath = "/open-apis/helpdesk/v1/customized_fields" 1103 apiReq.HttpMethod = http.MethodGet 1104 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1105 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1106 if err != nil { 1107 return nil, err 1108 } 1109 // 反序列响应结果 1110 resp := &CustomizedFieldsTicketResp{ApiResp: apiResp} 1111 err = apiResp.JSONUnmarshalBody(resp) 1112 if err != nil { 1113 return nil, err 1114 } 1115 return resp, err 1116 } 1117 1118 // 获取工单详情 1119 // 1120 // - 该接口用于获取单个服务台工单详情。仅支持自建应用。 1121 // 1122 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/get 1123 // 1124 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_ticket.go 1125 func (t *ticket) Get(ctx context.Context, req *GetTicketReq, options ...larkcore.RequestOptionFunc) (*GetTicketResp, error) { 1126 // 发起请求 1127 apiReq := req.apiReq 1128 apiReq.ApiPath = "/open-apis/helpdesk/v1/tickets/:ticket_id" 1129 apiReq.HttpMethod = http.MethodGet 1130 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1131 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1132 if err != nil { 1133 return nil, err 1134 } 1135 // 反序列响应结果 1136 resp := &GetTicketResp{ApiResp: apiResp} 1137 err = apiResp.JSONUnmarshalBody(resp) 1138 if err != nil { 1139 return nil, err 1140 } 1141 return resp, err 1142 } 1143 1144 // 获取全部工单详情 1145 // 1146 // - 该接口用于获取全部工单详情。仅支持自建应用。 1147 // 1148 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/list 1149 // 1150 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_ticket.go 1151 func (t *ticket) List(ctx context.Context, req *ListTicketReq, options ...larkcore.RequestOptionFunc) (*ListTicketResp, error) { 1152 // 发起请求 1153 apiReq := req.apiReq 1154 apiReq.ApiPath = "/open-apis/helpdesk/v1/tickets" 1155 apiReq.HttpMethod = http.MethodGet 1156 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1157 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1158 if err != nil { 1159 return nil, err 1160 } 1161 // 反序列响应结果 1162 resp := &ListTicketResp{ApiResp: apiResp} 1163 err = apiResp.JSONUnmarshalBody(resp) 1164 if err != nil { 1165 return nil, err 1166 } 1167 return resp, err 1168 } 1169 1170 // 创建服务台对话 1171 // 1172 // - 该接口用于创建服务台对话。 1173 // 1174 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/start_service 1175 // 1176 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/startService_ticket.go 1177 func (t *ticket) StartService(ctx context.Context, req *StartServiceTicketReq, options ...larkcore.RequestOptionFunc) (*StartServiceTicketResp, error) { 1178 // 发起请求 1179 apiReq := req.apiReq 1180 apiReq.ApiPath = "/open-apis/helpdesk/v1/start_service" 1181 apiReq.HttpMethod = http.MethodPost 1182 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1183 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1184 if err != nil { 1185 return nil, err 1186 } 1187 // 反序列响应结果 1188 resp := &StartServiceTicketResp{ApiResp: apiResp} 1189 err = apiResp.JSONUnmarshalBody(resp) 1190 if err != nil { 1191 return nil, err 1192 } 1193 return resp, err 1194 } 1195 1196 // 获取服务台工单内消息图像 1197 // 1198 // - 该接口用于获取服务台工单消息图象。仅支持自建应用。 1199 // 1200 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/ticket_image 1201 // 1202 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/ticketImage_ticket.go 1203 func (t *ticket) TicketImage(ctx context.Context, req *TicketImageTicketReq, options ...larkcore.RequestOptionFunc) (*TicketImageTicketResp, error) { 1204 // 发起请求 1205 apiReq := req.apiReq 1206 apiReq.ApiPath = "/open-apis/helpdesk/v1/ticket_images" 1207 apiReq.HttpMethod = http.MethodGet 1208 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1209 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1210 if err != nil { 1211 return nil, err 1212 } 1213 // 反序列响应结果 1214 resp := &TicketImageTicketResp{ApiResp: apiResp} 1215 // 如果是下载,则设置响应结果 1216 if apiResp.StatusCode == http.StatusOK { 1217 resp.File = bytes.NewBuffer(apiResp.RawBody) 1218 resp.FileName = larkcore.FileNameByHeader(apiResp.Header) 1219 return resp, err 1220 } 1221 err = apiResp.JSONUnmarshalBody(resp) 1222 if err != nil { 1223 return nil, err 1224 } 1225 return resp, err 1226 } 1227 1228 // 更新工单详情 1229 // 1230 // - 该接口用于更新服务台工单详情。只会更新数据,不会触发相关操作。如修改工单状态到关单,不会关闭聊天页面。仅支持自建应用。要更新的工单字段必须至少输入一项。 1231 // 1232 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket/update 1233 // 1234 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/update_ticket.go 1235 func (t *ticket) Update(ctx context.Context, req *UpdateTicketReq, options ...larkcore.RequestOptionFunc) (*UpdateTicketResp, error) { 1236 // 发起请求 1237 apiReq := req.apiReq 1238 apiReq.ApiPath = "/open-apis/helpdesk/v1/tickets/:ticket_id" 1239 apiReq.HttpMethod = http.MethodPut 1240 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1241 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1242 if err != nil { 1243 return nil, err 1244 } 1245 // 反序列响应结果 1246 resp := &UpdateTicketResp{ApiResp: apiResp} 1247 err = apiResp.JSONUnmarshalBody(resp) 1248 if err != nil { 1249 return nil, err 1250 } 1251 return resp, err 1252 } 1253 1254 // 工单发送消息 1255 // 1256 // - 该接口用于工单发送消息。 1257 // 1258 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket-message/create 1259 // 1260 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_ticketMessage.go 1261 func (t *ticketMessage) Create(ctx context.Context, req *CreateTicketMessageReq, options ...larkcore.RequestOptionFunc) (*CreateTicketMessageResp, error) { 1262 // 发起请求 1263 apiReq := req.apiReq 1264 apiReq.ApiPath = "/open-apis/helpdesk/v1/tickets/:ticket_id/messages" 1265 apiReq.HttpMethod = http.MethodPost 1266 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1267 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1268 if err != nil { 1269 return nil, err 1270 } 1271 // 反序列响应结果 1272 resp := &CreateTicketMessageResp{ApiResp: apiResp} 1273 err = apiResp.JSONUnmarshalBody(resp) 1274 if err != nil { 1275 return nil, err 1276 } 1277 return resp, err 1278 } 1279 1280 // 获取服务台工单消息详情 1281 // 1282 // - 该接口用于获取服务台工单消息详情。 1283 // 1284 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket-message/list 1285 // 1286 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_ticketMessage.go 1287 func (t *ticketMessage) List(ctx context.Context, req *ListTicketMessageReq, options ...larkcore.RequestOptionFunc) (*ListTicketMessageResp, error) { 1288 // 发起请求 1289 apiReq := req.apiReq 1290 apiReq.ApiPath = "/open-apis/helpdesk/v1/tickets/:ticket_id/messages" 1291 apiReq.HttpMethod = http.MethodGet 1292 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1293 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1294 if err != nil { 1295 return nil, err 1296 } 1297 // 反序列响应结果 1298 resp := &ListTicketMessageResp{ApiResp: apiResp} 1299 err = apiResp.JSONUnmarshalBody(resp) 1300 if err != nil { 1301 return nil, err 1302 } 1303 return resp, err 1304 } 1305 1306 // 创建工单自定义字段 1307 // 1308 // - 该接口用于创建自定义字段 1309 // 1310 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket_customized_field/create 1311 // 1312 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/create_ticketCustomizedField.go 1313 func (t *ticketCustomizedField) Create(ctx context.Context, req *CreateTicketCustomizedFieldReq, options ...larkcore.RequestOptionFunc) (*CreateTicketCustomizedFieldResp, error) { 1314 // 发起请求 1315 apiReq := req.apiReq 1316 apiReq.ApiPath = "/open-apis/helpdesk/v1/ticket_customized_fields" 1317 apiReq.HttpMethod = http.MethodPost 1318 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1319 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1320 if err != nil { 1321 return nil, err 1322 } 1323 // 反序列响应结果 1324 resp := &CreateTicketCustomizedFieldResp{ApiResp: apiResp} 1325 err = apiResp.JSONUnmarshalBody(resp) 1326 if err != nil { 1327 return nil, err 1328 } 1329 return resp, err 1330 } 1331 1332 // 删除工单自定义字段 1333 // 1334 // - 该接口用于删除工单自定义字段。 1335 // 1336 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket_customized_field/delete 1337 // 1338 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/delete_ticketCustomizedField.go 1339 func (t *ticketCustomizedField) Delete(ctx context.Context, req *DeleteTicketCustomizedFieldReq, options ...larkcore.RequestOptionFunc) (*DeleteTicketCustomizedFieldResp, error) { 1340 // 发起请求 1341 apiReq := req.apiReq 1342 apiReq.ApiPath = "/open-apis/helpdesk/v1/ticket_customized_fields/:ticket_customized_field_id" 1343 apiReq.HttpMethod = http.MethodDelete 1344 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1345 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1346 if err != nil { 1347 return nil, err 1348 } 1349 // 反序列响应结果 1350 resp := &DeleteTicketCustomizedFieldResp{ApiResp: apiResp} 1351 err = apiResp.JSONUnmarshalBody(resp) 1352 if err != nil { 1353 return nil, err 1354 } 1355 return resp, err 1356 } 1357 1358 // 获取工单自定义字段 1359 // 1360 // - 该接口用于获取工单自定义字段详情。 1361 // 1362 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket_customized_field/get 1363 // 1364 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/get_ticketCustomizedField.go 1365 func (t *ticketCustomizedField) Get(ctx context.Context, req *GetTicketCustomizedFieldReq, options ...larkcore.RequestOptionFunc) (*GetTicketCustomizedFieldResp, error) { 1366 // 发起请求 1367 apiReq := req.apiReq 1368 apiReq.ApiPath = "/open-apis/helpdesk/v1/ticket_customized_fields/:ticket_customized_field_id" 1369 apiReq.HttpMethod = http.MethodGet 1370 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1371 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1372 if err != nil { 1373 return nil, err 1374 } 1375 // 反序列响应结果 1376 resp := &GetTicketCustomizedFieldResp{ApiResp: apiResp} 1377 err = apiResp.JSONUnmarshalBody(resp) 1378 if err != nil { 1379 return nil, err 1380 } 1381 return resp, err 1382 } 1383 1384 // 获取全部工单自定义字段 1385 // 1386 // - 该接口用于获取全部工单自定义字段。 1387 // 1388 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket_customized_field/list 1389 // 1390 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/list_ticketCustomizedField.go 1391 func (t *ticketCustomizedField) List(ctx context.Context, req *ListTicketCustomizedFieldReq, options ...larkcore.RequestOptionFunc) (*ListTicketCustomizedFieldResp, error) { 1392 // 发起请求 1393 apiReq := req.apiReq 1394 apiReq.ApiPath = "/open-apis/helpdesk/v1/ticket_customized_fields" 1395 apiReq.HttpMethod = http.MethodGet 1396 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant} 1397 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1398 if err != nil { 1399 return nil, err 1400 } 1401 // 反序列响应结果 1402 resp := &ListTicketCustomizedFieldResp{ApiResp: apiResp} 1403 err = apiResp.JSONUnmarshalBody(resp) 1404 if err != nil { 1405 return nil, err 1406 } 1407 return resp, err 1408 } 1409 1410 // 更新工单自定义字段 1411 // 1412 // - 该接口用于更新自定义字段。 1413 // 1414 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/helpdesk-v1/ticket_customized_field/patch 1415 // 1416 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/helpdeskv1/patch_ticketCustomizedField.go 1417 func (t *ticketCustomizedField) Patch(ctx context.Context, req *PatchTicketCustomizedFieldReq, options ...larkcore.RequestOptionFunc) (*PatchTicketCustomizedFieldResp, error) { 1418 // 发起请求 1419 apiReq := req.apiReq 1420 apiReq.ApiPath = "/open-apis/helpdesk/v1/ticket_customized_fields/:ticket_customized_field_id" 1421 apiReq.HttpMethod = http.MethodPatch 1422 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 1423 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 1424 if err != nil { 1425 return nil, err 1426 } 1427 // 反序列响应结果 1428 resp := &PatchTicketCustomizedFieldResp{ApiResp: apiResp} 1429 err = apiResp.JSONUnmarshalBody(resp) 1430 if err != nil { 1431 return nil, err 1432 } 1433 return resp, err 1434 }