Atlassian云版:如何调用外部API并在Confluence页面UI展示结果?
问题解答
一、能否用客户端脚本/用户宏实现需求?
不行,原因如下:
- Confluence云出于安全合规考虑,禁止直接嵌入自定义客户端JavaScript,无法通过页面内嵌脚本发起API请求。
- 原生用户宏(User Macro)仅支持Velocity模板语法,无法编写可发起HTTP请求的逻辑;且浏览器端请求会遭遇跨域限制,用户宏也没有后端权限绕过这个问题。
因此这条路走不通,必须采用Atlassian官方推荐的扩展方案——Forge应用。
二、Forge应用集成Confluence的研究方向
1. 基础环境与核心概念
- 先安装Forge CLI工具,熟悉
forge create、forge deploy、forge install等核心命令,完成本地开发环境搭建。 - 理解Forge的应用结构:前端基于Forge UI组件库(或React)构建界面,后端用Node.js编写业务逻辑,通过
@forge/api包实现各类接口调用。 - 掌握Atlassian OAuth认证机制,确保应用能合法访问Confluence站点资源。
2. 外部API调用逻辑实现
- 在Forge后端函数中,使用
@forge/api提供的fetch方法发起外部API请求(后端请求无跨域限制),处理返回结果后传递给前端组件。 - 敏感信息(如API密钥、接口地址)存入Forge环境变量,避免硬编码导致泄露。
3. 页面组件嵌入与自动加载
- 选择合适的Confluence扩展点,比如
confluence:page.content(页面内容区域)或confluence:page.sidebar(侧边栏),让组件默认出现在所有页面中,满足“新建页面自动包含调用区域”的需求。 - 若需要更灵活的控制,可结合Confluence空间模板,将Forge组件添加到模板中,设置新建页面默认使用该模板。
4. UI交互与结果展示
- 使用
@forge/ui组件库构建按钮、文本展示区域,保持与Confluence原生UI风格一致。 - 实现按钮点击事件:触发后端API调用,将返回的字符串结果渲染到页面指定区域。
5. 权限配置与测试调试
- 配置应用权限:确保应用拥有Confluence页面的读取/修改权限,以及外部API的访问权限。
- 本地开发时用
forge tunnel进行实时调试,部署后通过forge logs查看运行日志排查问题。
内容的提问来源于stack exchange,提问作者singh_v
相关产品推荐
相关产品推荐

