目前飞书开放平台的云文档相关的权限管理 API 暂时不支持直接使用 appid 添加权限。但我们可以通过为群授权的方式,来给群内的机器人添加文档的管理权限,从而实现应用 A 将自己生成的文档授权给应用 B 。

流程图

伪代码

/**
 * 批量为应用添加文档的管理权限。
 * Author: 白宦成 <hi@feishu.io>
 */
const APP_ID = "cli_xxxxxxxxxxxxxxxxxx";
const ANOTHER_APP_ID = "cli_xxxxxxxxxxxxxxxxxx";


function createGroup() {
    // 服务端文档:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create
    // 服务端 SDK:https://open.feishu.cn/document/ukTMukTMukTM/uETO1YjLxkTN24SM5UjN
}

function createFolder() {
    // 服务端文档:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/create_folder
    // 服务端 SDK:https://open.feishu.cn/document/ukTMukTMukTM/uETO1YjLxkTN24SM5UjN
}

function addUserIntoGroup(groupId,appId) {
    // 服务端文档:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-members/create
    // 服务端 SDK:https://open.feishu.cn/document/ukTMukTMukTM/uETO1YjLxkTN24SM5UjN
}


function addMemberToFolder(folderToken,groupId) {
    // 服务端文档:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/permission-member/create
    // 服务端 SDK:https://open.feishu.cn/document/ukTMukTMukTM/uETO1YjLxkTN24SM5UjN
}

function main() {
    // 创建一个文件夹,用于后续授权使用;
    folderToken = createFolder(); // 创建文件夹并获取到对应的文件夹 Token。用于后续添加权限。
    
    // 创建一个群,并将需要开启权限的机器人拉入群内
    groupId = createGroup();
    // 可以这样分步骤拉,也可以在创建群的时候通过 bot_id_list 参数在创建群的时候一次性拉入
    addUserIntoGroup(groupId, APP_ID);
    addUserIntoGroup(groupId, ANOTHER_APP_ID);

    // 为群添加文件夹权限
    addMemberToFolder(folderToken,groupId);
}