lark_oapi
简介
API封装约定:
- 接口命名参考oapi-sdk-python
- 接口接受参数
params
和/或data
,对应官方文档中的查询参数与请求体
组件接口
lark_oapi.gs
信息
描述链接为飞书开发文档相应内容
样例
public void sample()
{
input_args.value_option("--app_id", "app_id", "应用唯一标识", ValueType.STRING);
input_args.value_option("--app_secret", "app_secret", "应用秘钥", ValueType.STRING);
input_args.value_option("--code", "code", "登录预授权码", ValueType.STRING);
map args = input_args.get_args();
string app_id = args.__app_id;
string app_secret = args.__app_secret;
map result = nil;
// 自建应用获取 tenant_access_token
result = lark_oapi.auth_v3_tenant_access_token_internal({
"app_id": app_id,
"app_secret": app_secret,
});
printf("auth.v3.tenant_access_token.internal: %O\n", result);
string tenant_access_token = result.tenant_access_token;
// 自建应用获取 app_access_token
result = lark_oapi.auth_v3_app_access_token_internal({
"app_id": app_id,
"app_secret": app_secret,
});
printf("auth.v3.app_access_token.internal: %O\n", result);
string app_access_token = result.app_access_token;
// 获取 user_access_token
result = lark_oapi.authen_v1_oidc_access_token_create(
{
"grant_type": "authorization_code",
"code": args.__code,
},
app_access_token
);
printf("authen.v1.oidc_access_token.create: %O\n", result);
string user_access_token = result.data.access_token;
// 获取单个用户信息
result = lark_oapi.contact_v3_user_get(
"53942a5c",
{
"user_id_type": "user_id"
},
tenant_access_token
);
printf("contact.v3.user.get: %O\n", result);
// 通过手机号或邮箱获取用户 ID
result = lark_oapi.contact_v3_user_batch_get_id(
{
"user_id_type": "open_id"
},
{
"emails": ["huangzw2@g-bits.com"]
},
tenant_access_token
);
printf("contact.v3.user.batch_get_id: %O\n", result);
// 获取群信息
result = lark_oapi.group_chat_get(
"oc_0f6426cbfa50347e0072bc87730058d8",
{},
tenant_access_token
);
printf("group.chat.get: %O\n", result);
// 获取工作表
result = lark_oapi.sheets_v3_spreadsheet_sheet_query("FthEsRd7ehFhaOthMk4cd59snCb", user_access_token);
printf("sheets.v3.spreadsheet_sheet.query: %O\n", result);
// 创建表格
result = lark_oapi.sheets_v3_spreadsheet_create(
{
"title": "TEST2",
},
user_access_token);
printf("sheets.v3.spreadsheet.create: %O\n", result);
// 获取知识空间列表
result = lark_oapi.wiki_v2_space_list(
{
"page_size": 25,
},
user_access_token
);
printf("wiki.v2.space.list: %O\n", result);
// 获取知识空间信息
result = lark_oapi.wiki_v2_space_get(
"7356533086685429763",
{
"lang": "zh"
}
user_access_token);
printf("wiki.v2.space.get: %O\n", result);
// 获取知识空间子节点列表
result = lark_oapi.wiki_v2_space_node_list("7356533086685429763", {}, user_access_token);
printf("wiki.v2.space_node.list: %O\n", result);
// 获取知识空间节点信息
result = lark_oapi.wiki_v2_space_get_node(
{
"token": "AX0Fw8bWUiEnvVka2ymclv0snJe"
},
user_access_token);
printf("wiki.v2.space.get_node: %O\n", result);
string spreadsheet_token = result.data.node.obj_token;
// 获取电子表格信息
result = lark_oapi.sheets_v3_spreadsheet_get(spreadsheet_token, {}, user_access_token);
printf("sheets.v3.spreadsheet.get: %O\n", result);
// 操作工作表
result = lark_oapi.sheets_v2_spreadsheet_sheet_operate(
spreadsheet_token,
{
"requests": [
{
"addSheet": {
"properties": {
"title": "New Sheet",
"index": 0
}
}
},
]
},
user_access_token);
printf("sheets.v2.spreadsheet_sheet.operate: %O\n", result);
// 获取工作表
result = lark_oapi.sheets_v3_spreadsheet_sheet_query(spreadsheet_token, user_access_token);
printf("sheets.v2.spreadsheet_sheet.query: %O\n", result);
string sheet_id = nil;
string new_sheet_id = nil;
for (map sheet_info : result.data.sheets)
{
if (sheet_info.title == "Sheet1")
{
sheet_id = sheet_info.sheet_id;
}
else if (sheet_info.title == "New Sheet")
{
new_sheet_id = sheet_info.sheet_id;
}
}
if (sheet_id != nil)
{
// 查询工作表
result = lark_oapi.sheets_v3_spreadsheet_sheet_get(spreadsheet_token, sheet_id, user_access_token);
printf("sheets.v3.spreadsheet_sheet.get: %O\n", result);
// 读取单个范围
result = lark_oapi.sheets_v2_spreadsheet_value_read(
spreadsheet_token,
sprintf("%s!A1:B5", sheet_id),
nil,
user_access_token);
printf("sheets.v2.spreadsheet_value.read: %O\n", result);
array values = result.data.valueRange.values;
if (new_sheet_id != nil)
{
// 向单个范围写入数据
result = lark_oapi.sheets_v2_spreadsheet_value_write(
spreadsheet_token,
{
"valueRange": {
"range": sprintf("%s!A1:B5", new_sheet_id),
"values": values,
}
},
user_access_token);
printf("sheets.v2.spreadsheet_value.write: %O\n", result);
}
}
}