Change permissions of PDF
通过API上传PDF并设置编辑、打印、复制等权限,返回加密后的下载链接。
通过 OAuth 安全连接 Dropbox,实现文件浏览、搜索与下载,支持自动令牌刷新。
openclaw skills install @tirandagan/dropbox-integration命令、参数、文件名以原文为准
此技能提供对您 Dropbox 账户的只读访问权限,允许您在 OpenClaw 中浏览文件夹、搜索文件并下载内容。它使用 OAuth 2.0 认证,并支持自动令牌刷新,实现无缝的长期访问。
适用场景: 安全地访问您的 Dropbox 文件,无需担心意外修改或删除。
此技能配置为只读访问,使用以下 Dropbox 权限范围:
files.metadata.read - 读取文件/文件夹元数据files.content.read - 读取文件内容account_info.read - 读取账户信息不包含:
files.content.write - 无法上传或修改文件files.metadata.write - 无法重命名或移动文件files.permanent_delete - 无法删除文件这确保了您的 Dropbox 内容免受意外修改。
使用本技能前,请准备:
dropbox 包(自动安装)设置时间:约 10 分钟
详见 [设置指南](references/setup-guide.md) 获取详细步骤。
访问 https://www.dropbox.com/developers/apps/create 并创建新应用:
在应用设置中:
http://localhost:3000/callback - files.metadata.read
- files.content.read
- account_info.read
在技能目录中创建 credentials.json:
{
"app_key": "your_dropbox_app_key_here",
"app_secret": "your_dropbox_app_secret_here"
}重要提示: 此文件已被加入 .gitignore,不会被提交到版本控制。
node setup-oauth.js该命令将执行以下操作:
token.jsonnode test-connection.js若成功,您将看到您的 Dropbox 账户信息!
# 列出根目录
node browse.js
# 列出指定文件夹
node browse.js "/Documents"
node browse.js "/Photos/2024"输出示例:
📁 列出:/Documents
📄 report.pdf (2.3 MB) - 2024-02-01
📄 presentation.pptx (5.1 MB) - 2024-01-28
📁 Projects
📁 Archive
总计:4 项node search-files.js "budget 2024"
node search-files.js "contract"输出示例:
🔍 搜索关键词:"budget 2024"
✅ 找到 3 个匹配项:
📄 /Finance/budget-2024-q1.xlsx
大小:156.3 KB
修改时间:2024-01-15T10:30:00Z
📄 /Reports/budget-2024-summary.pdf
大小:2.1 MB
修改时间:2024-02-01T14:22:00Z# 下载到本地文件
node download.js "/Documents/report.pdf" "./downloads/report.pdf"
# 下载到当前目录
node download.js "/Photos/vacation.jpg" "./vacation.jpg"输出示例:
📥 下载中:/Documents/report.pdf
✅ 已保存至:./downloads/report.pdf (2.3 MB)在 OpenClaw 中,您可以使用 exec 工具运行这些脚本:
浏览文件:
运行:node /path/to/dropbox-integration/browse.js "/Documents"搜索文件:
运行:node /path/to/dropbox-integration/search-files.js "contract"下载文件:
运行:node /path/to/dropbox-integration/download.js "/path/in/dropbox" "./local/path"也可直接调用 dropbox-helper.js 模块创建自定义自动化工作流。
token.jsondropbox-helper.js 中透明完成dropbox-integration/
├── SKILL.md # 本文件
├── dropbox-helper.js # 自动刷新的 Dropbox 客户端
├── setup-oauth.js # OAuth 设置脚本
├── browse.js # 浏览文件夹
├── search-files.js # 搜索文件
├── download.js # 下载文件
├── test-connection.js # 测试认证连接
├── credentials.json.example # 凭证模板
├── .gitignore # 忽略 credentials.json 和 token.json
└── references/
└── setup-guide.md # 详细的设置说明请根据快速开始第 3 步创建 credentials.json,填入您的 Dropbox 应用密钥和应用密钥。
您的刷新令牌可能已被撤销。请重新运行 node setup-oauth.js 以重新进行身份验证。
请检查您是否已在 Dropbox App 设置的“权限”选项卡中启用了所需权限。
请确保已将 http://localhost:3000/callback 添加到 Dropbox App Console 中的应用程序重定向 URI 列表。
如果本地服务器未捕获重定向,请在授权完成后手动复制浏览器中的完整 URL,并查找 code= 参数。
credentials.json 和 token.json 文件已被 gitignore 忽略对于自定义集成,可直接导入辅助模块:
const { getDropboxClient } = require('./dropbox-helper');
async function myCustomFunction() {
const dbx = await getDropboxClient(); // 自动刷新客户端
// 使用任意 Dropbox SDK 方法
const response = await dbx.filesListFolder({ path: '/Photos' });
console.log(response.result.entries);
}该辅助模块会自动处理令牌刷新,您无需担心过期问题。
按顺序下载多个文件:
const { getDropboxClient } = require('./dropbox-helper');
const fs = require('fs').promises;
async function downloadMultiple(files) {
const dbx = await getDropboxClient();
for (const file of files) {
const response = await dbx.filesDownload({ path: file.dropboxPath });
await fs.writeFile(file.localPath, response.result.fileBinary);
console.log(`已下载: ${file.dropboxPath}`);
}
}此技能需要 dropbox npm 包:
npm install dropbox通过 ClawHub 安装本技能时,该包会自动安装。
MIT - 免费使用、修改和分发。
如遇问题或疑问:
注意:本技能专为个人使用设计。如需用于支持多用户的生产环境应用,请考虑实现带有状态管理及并发用户错误处理的完整 OAuth 流程。
已收录 1 个 Skill