gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/wiki/v2/api.go (about) 1 // Package wiki 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 larkwiki 15 16 import ( 17 "context" 18 "net/http" 19 20 "gitee.com/larksuite/oapi-sdk-go/v3/core" 21 ) 22 23 func NewService(config *larkcore.Config) *WikiService { 24 w := &WikiService{config: config} 25 w.Space = &space{service: w} 26 w.SpaceMember = &spaceMember{service: w} 27 w.SpaceNode = &spaceNode{service: w} 28 w.SpaceSetting = &spaceSetting{service: w} 29 w.Task = &task{service: w} 30 return w 31 } 32 33 type WikiService struct { 34 config *larkcore.Config 35 Space *space // 知识空间 36 SpaceMember *spaceMember // 空间成员 37 SpaceNode *spaceNode // 节点 38 SpaceSetting *spaceSetting // 空间设置 39 Task *task // 云文档 40 } 41 42 type space struct { 43 service *WikiService 44 } 45 type spaceMember struct { 46 service *WikiService 47 } 48 type spaceNode struct { 49 service *WikiService 50 } 51 type spaceSetting struct { 52 service *WikiService 53 } 54 type task struct { 55 service *WikiService 56 } 57 58 // 创建知识空间 59 // 60 // - 此接口用于创建知识空间 61 // 62 // - 此接口不支持tenant access token(应用身份访问) 63 // 64 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/create 65 // 66 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/create_space.go 67 func (s *space) Create(ctx context.Context, req *CreateSpaceReq, options ...larkcore.RequestOptionFunc) (*CreateSpaceResp, error) { 68 // 发起请求 69 apiReq := req.apiReq 70 apiReq.ApiPath = "/open-apis/wiki/v2/spaces" 71 apiReq.HttpMethod = http.MethodPost 72 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser} 73 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 74 if err != nil { 75 return nil, err 76 } 77 // 反序列响应结果 78 resp := &CreateSpaceResp{ApiResp: apiResp} 79 err = apiResp.JSONUnmarshalBody(resp) 80 if err != nil { 81 return nil, err 82 } 83 return resp, err 84 } 85 86 // 获取知识空间信息 87 // 88 // - 此接口用于根据知识空间ID来查询知识空间的信息。;;空间类型(type):;- 个人空间:归个人管理。一人仅可拥有一个个人空间,无法添加其他管理员。;- 团队空间:归团队(多人)管理,可添加多个管理员。;;空间可见性(visibility):;- 公开空间:租户所有用户可见,默认为成员权限。无法额外添加成员,但可以添加管理员。;- 私有空间:仅对知识空间管理员、成员可见,需要手动添加管理员、成员。 89 // 90 // - 本接口要求知识库权限:;- 需要为知识空间成员(管理员) 91 // 92 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get 93 // 94 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/get_space.go 95 func (s *space) Get(ctx context.Context, req *GetSpaceReq, options ...larkcore.RequestOptionFunc) (*GetSpaceResp, error) { 96 // 发起请求 97 apiReq := req.apiReq 98 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id" 99 apiReq.HttpMethod = http.MethodGet 100 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 101 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 102 if err != nil { 103 return nil, err 104 } 105 // 反序列响应结果 106 resp := &GetSpaceResp{ApiResp: apiResp} 107 err = apiResp.JSONUnmarshalBody(resp) 108 if err != nil { 109 return nil, err 110 } 111 return resp, err 112 } 113 114 // 获取节点信息 115 // 116 // - 获取节点信息 117 // 118 // - 知识库权限要求:;- 节点阅读权限 119 // 120 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get_node 121 // 122 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/getNode_space.go 123 func (s *space) GetNode(ctx context.Context, req *GetNodeSpaceReq, options ...larkcore.RequestOptionFunc) (*GetNodeSpaceResp, error) { 124 // 发起请求 125 apiReq := req.apiReq 126 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/get_node" 127 apiReq.HttpMethod = http.MethodGet 128 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 129 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 130 if err != nil { 131 return nil, err 132 } 133 // 反序列响应结果 134 resp := &GetNodeSpaceResp{ApiResp: apiResp} 135 err = apiResp.JSONUnmarshalBody(resp) 136 if err != nil { 137 return nil, err 138 } 139 return resp, err 140 } 141 142 // 获取知识空间列表 143 // 144 // - 此接口用于获取有权限访问的知识空间列表。;;此接口为分页接口。由于权限过滤,可能返回列表为空,但分页标记(has_more)为true,可以继续分页请求。;;对于知识空间各项属性描述请参阅[获取知识空间信息](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/get) 145 // 146 // - 使用tenant access token调用时,请确认应用/机器人拥有部分知识空间的访问权限,否则返回列表容易为空。 147 // 148 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space/list 149 // 150 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/list_space.go 151 func (s *space) List(ctx context.Context, req *ListSpaceReq, options ...larkcore.RequestOptionFunc) (*ListSpaceResp, error) { 152 // 发起请求 153 apiReq := req.apiReq 154 apiReq.ApiPath = "/open-apis/wiki/v2/spaces" 155 apiReq.HttpMethod = http.MethodGet 156 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 157 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 158 if err != nil { 159 return nil, err 160 } 161 // 反序列响应结果 162 resp := &ListSpaceResp{ApiResp: apiResp} 163 err = apiResp.JSONUnmarshalBody(resp) 164 if err != nil { 165 return nil, err 166 } 167 return resp, err 168 } 169 func (s *space) ListByIterator(ctx context.Context, req *ListSpaceReq, options ...larkcore.RequestOptionFunc) (*ListSpaceIterator, error) { 170 return &ListSpaceIterator{ 171 ctx: ctx, 172 req: req, 173 listFunc: s.List, 174 options: options, 175 limit: req.Limit}, nil 176 } 177 178 // 添加知识空间成员 179 // 180 // - 添加知识空间成员(管理员)。;;- 公开知识空间(visibility为public)对租户所有用户可见,因此不支持再添加成员,但可以添加管理员。;; 相关错误:131101 public wiki space can't create member.;- 个人知识空间 (type为person)为个人管理的知识空间,不支持添加其他管理员(包括应用/机器人)。但可以添加成员。;; 相关错误:131101 person wiki space can't create admin. 181 // 182 // - 知识库权限要求;- 为知识空间管理员 183 // 184 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-member/create 185 // 186 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/create_spaceMember.go 187 func (s *spaceMember) Create(ctx context.Context, req *CreateSpaceMemberReq, options ...larkcore.RequestOptionFunc) (*CreateSpaceMemberResp, error) { 188 // 发起请求 189 apiReq := req.apiReq 190 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/members" 191 apiReq.HttpMethod = http.MethodPost 192 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 193 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 194 if err != nil { 195 return nil, err 196 } 197 // 反序列响应结果 198 resp := &CreateSpaceMemberResp{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 // - 此接口用于删除知识空间成员。;;- 公开知识空间(visibility为public)对租户所有用户可见,因此不支持再删除成员,但可以删除管理员。;;- 个人知识空间 (type为person)为个人管理的知识空间,不支持删除管理员。但可以删除成员。 209 // 210 // - 知识库权限要求;- 为知识空间管理员 211 // 212 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-member/delete 213 // 214 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/delete_spaceMember.go 215 func (s *spaceMember) Delete(ctx context.Context, req *DeleteSpaceMemberReq, options ...larkcore.RequestOptionFunc) (*DeleteSpaceMemberResp, error) { 216 // 发起请求 217 apiReq := req.apiReq 218 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/members/:member_id" 219 apiReq.HttpMethod = http.MethodDelete 220 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 221 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 222 if err != nil { 223 return nil, err 224 } 225 // 反序列响应结果 226 resp := &DeleteSpaceMemberResp{ApiResp: apiResp} 227 err = apiResp.JSONUnmarshalBody(resp) 228 if err != nil { 229 return nil, err 230 } 231 return resp, err 232 } 233 234 // 创建节点副本 235 // 236 // - 此接口用于创建节点副本到指定地点。 237 // 238 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/copy 239 // 240 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/copy_spaceNode.go 241 func (s *spaceNode) Copy(ctx context.Context, req *CopySpaceNodeReq, options ...larkcore.RequestOptionFunc) (*CopySpaceNodeResp, error) { 242 // 发起请求 243 apiReq := req.apiReq 244 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/nodes/:node_token/copy" 245 apiReq.HttpMethod = http.MethodPost 246 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 247 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 248 if err != nil { 249 return nil, err 250 } 251 // 反序列响应结果 252 resp := &CopySpaceNodeResp{ApiResp: apiResp} 253 err = apiResp.JSONUnmarshalBody(resp) 254 if err != nil { 255 return nil, err 256 } 257 return resp, err 258 } 259 260 // 创建节点 261 // 262 // - 此接口用于在知识库里创建节点。 263 // 264 // - 知识库权限要求:;- **父节点**容器编辑权限 265 // 266 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/create 267 // 268 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/create_spaceNode.go 269 func (s *spaceNode) Create(ctx context.Context, req *CreateSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*CreateSpaceNodeResp, error) { 270 // 发起请求 271 apiReq := req.apiReq 272 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/nodes" 273 apiReq.HttpMethod = http.MethodPost 274 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 275 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 276 if err != nil { 277 return nil, err 278 } 279 // 反序列响应结果 280 resp := &CreateSpaceNodeResp{ApiResp: apiResp} 281 err = apiResp.JSONUnmarshalBody(resp) 282 if err != nil { 283 return nil, err 284 } 285 return resp, err 286 } 287 288 // 获取子节点列表 289 // 290 // - 此接口用于分页获取Wiki节点的子节点列表。;;此接口为分页接口。由于权限过滤,可能返回列表为空,但分页标记(has_more)为true,可以继续分页请求。 291 // 292 // - 知识库权限要求:;- 父节点阅读权限 293 // 294 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/list 295 // 296 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/list_spaceNode.go 297 func (s *spaceNode) List(ctx context.Context, req *ListSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*ListSpaceNodeResp, error) { 298 // 发起请求 299 apiReq := req.apiReq 300 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/nodes" 301 apiReq.HttpMethod = http.MethodGet 302 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 303 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 304 if err != nil { 305 return nil, err 306 } 307 // 反序列响应结果 308 resp := &ListSpaceNodeResp{ApiResp: apiResp} 309 err = apiResp.JSONUnmarshalBody(resp) 310 if err != nil { 311 return nil, err 312 } 313 return resp, err 314 } 315 func (s *spaceNode) ListByIterator(ctx context.Context, req *ListSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*ListSpaceNodeIterator, error) { 316 return &ListSpaceNodeIterator{ 317 ctx: ctx, 318 req: req, 319 listFunc: s.List, 320 options: options, 321 limit: req.Limit}, nil 322 } 323 324 // 移动节点 325 // 326 // - 此方法用于在Wiki内移动节点,支持跨知识空间移动。如果有子节点,会携带子节点一起移动。 327 // 328 // - 知识库权限要求:;- 节点编辑权限;- 原父节点容器编辑权限;- 目的父节点容器编辑权限 329 // 330 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/move 331 // 332 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/move_spaceNode.go 333 func (s *spaceNode) Move(ctx context.Context, req *MoveSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*MoveSpaceNodeResp, error) { 334 // 发起请求 335 apiReq := req.apiReq 336 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/nodes/:node_token/move" 337 apiReq.HttpMethod = http.MethodPost 338 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 339 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 340 if err != nil { 341 return nil, err 342 } 343 // 反序列响应结果 344 resp := &MoveSpaceNodeResp{ApiResp: apiResp} 345 err = apiResp.JSONUnmarshalBody(resp) 346 if err != nil { 347 return nil, err 348 } 349 return resp, err 350 } 351 352 // 添加已有云文档至知识库 353 // 354 // - 该接口允许添加已有云文档至知识库,并挂载在指定父页面下 355 // 356 // - ### 移动操作 ###;移动后,文档将从“我的空间”或“共享空间”转移至“知识库”,并将从以下功能入口消失:;- 云空间主页:最近访问、快速访问;- 我的空间;- 共享空间;- 收藏;;### 权限变更 ###;移动后,文档会向所有可查看“页面树”的用户显示,默认继承父页面的权限设置。;</md-alert 357 // 358 // - 仅支持文档所有者发起请求;;此接口为异步接口。若移动已完成(或节点已在Wiki中),则直接返回结果(Wiki token)。若尚未完成,则返回task id。请使用[获取任务结果](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/task/get)接口进行查询。;;知识库权限要求:;- 文档可管理权限;- 原文件夹编辑权限;- 目标父节点容器编辑权限 359 // 360 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/move_docs_to_wiki 361 // 362 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/moveDocsToWiki_spaceNode.go 363 func (s *spaceNode) MoveDocsToWiki(ctx context.Context, req *MoveDocsToWikiSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*MoveDocsToWikiSpaceNodeResp, error) { 364 // 发起请求 365 apiReq := req.apiReq 366 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/nodes/move_docs_to_wiki" 367 apiReq.HttpMethod = http.MethodPost 368 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 369 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 370 if err != nil { 371 return nil, err 372 } 373 // 反序列响应结果 374 resp := &MoveDocsToWikiSpaceNodeResp{ApiResp: apiResp} 375 err = apiResp.JSONUnmarshalBody(resp) 376 if err != nil { 377 return nil, err 378 } 379 return resp, err 380 } 381 382 // 更新标题 383 // 384 // - 此接口用于更新节点标题 385 // 386 // - 此接口目前仅支持文档(doc)、新版文档(docx)和快捷方式。 387 // 388 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-node/update_title 389 // 390 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/updateTitle_spaceNode.go 391 func (s *spaceNode) UpdateTitle(ctx context.Context, req *UpdateTitleSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*UpdateTitleSpaceNodeResp, error) { 392 // 发起请求 393 apiReq := req.apiReq 394 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/nodes/:node_token/update_title" 395 apiReq.HttpMethod = http.MethodPost 396 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 397 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 398 if err != nil { 399 return nil, err 400 } 401 // 反序列响应结果 402 resp := &UpdateTitleSpaceNodeResp{ApiResp: apiResp} 403 err = apiResp.JSONUnmarshalBody(resp) 404 if err != nil { 405 return nil, err 406 } 407 return resp, err 408 } 409 410 // 更新知识空间设置 411 // 412 // - 根据space_id更新知识空间公共设置 413 // 414 // - 知识库权限要求:;- 为知识空间管理员 415 // 416 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/space-setting/update 417 // 418 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/update_spaceSetting.go 419 func (s *spaceSetting) Update(ctx context.Context, req *UpdateSpaceSettingReq, options ...larkcore.RequestOptionFunc) (*UpdateSpaceSettingResp, error) { 420 // 发起请求 421 apiReq := req.apiReq 422 apiReq.ApiPath = "/open-apis/wiki/v2/spaces/:space_id/setting" 423 apiReq.HttpMethod = http.MethodPut 424 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 425 apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...) 426 if err != nil { 427 return nil, err 428 } 429 // 反序列响应结果 430 resp := &UpdateSpaceSettingResp{ApiResp: apiResp} 431 err = apiResp.JSONUnmarshalBody(resp) 432 if err != nil { 433 return nil, err 434 } 435 return resp, err 436 } 437 438 // 获取任务结果 439 // 440 // - 该方法用于获取wiki异步任务的结果 441 // 442 // - 知识库权限要求:;- 为任务创建者(用户或应用/机器人) 443 // 444 // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/wiki-v2/task/get 445 // 446 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/wikiv2/get_task.go 447 func (t *task) Get(ctx context.Context, req *GetTaskReq, options ...larkcore.RequestOptionFunc) (*GetTaskResp, error) { 448 // 发起请求 449 apiReq := req.apiReq 450 apiReq.ApiPath = "/open-apis/wiki/v2/tasks/:task_id" 451 apiReq.HttpMethod = http.MethodGet 452 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 453 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 454 if err != nil { 455 return nil, err 456 } 457 // 反序列响应结果 458 resp := &GetTaskResp{ApiResp: apiResp} 459 err = apiResp.JSONUnmarshalBody(resp) 460 if err != nil { 461 return nil, err 462 } 463 return resp, err 464 }