SuperAPI AI 工具集

figshare-skill

数据与分析

查看项目

更新于 10-15 09:07

技能介绍

Figshare Skill 用于通过 Figshare v2 REST API 搜索、下载、创建和上传研究产出(research outputs)。

用途

该技能覆盖与 Figshare 平台的常见交互:检索公开数据集与文章、下载公开文章文件、管理账户下的文章、创建与发布研究产出,以及组织集合和项目。

主要能力

  • 搜索公开文章:通过 POST /articles/search 使用字段操作符(如 :title:、:author:、:tag:、:category:、:doi:、:resource_doi:)检索。
  • 获取公开文章:可按 article_id 或从 figshare.com URL 解析出的数字尾部获取。
  • 下载公开文章文件:先取文件列表中的 download_url 与 name,再逐个下载。
  • 列出账户文章:使用带鉴权的 /account/articles 分页接口。
  • 创建草稿文章:提交 title、description、defined_type、tags、categories 等字段,返回 location 与 entity_id。
  • 更新与发布文章:PUT 更新元数据,POST /publish 发布(变为公开、分配 DOI、该版本冻结)。
  • 集合与项目:创建 collection 以聚合已有文章,创建 project 组织研究项目。
  • 文件上传:采用三步多部分流程(initiate → PUT each part → complete),并提供脚本 ./scripts/upload.sh、./scripts/download.sh、./scripts/new-version.sh 辅助完成。

使用方式

前置条件:curl 与 jq 需在 PATH 中。

鉴权:涉及 /account/... 或上传的端点需要个人令牌,令牌从 https://figshare.com/account/applications 获取,并以环境变量导出:export FIGSHARE_TOKEN=xxxxxxxxxxxxxxxx。公开端点(搜索、公开文章、下载)无需令牌。

更新检查:每次安装每 24 小时最多检查一次;若 <this-skill-dir>/.last_update 存在且不足 24 小时则跳过。否则从上游获取最新标签并与元数据中的 version 按 semver 比较;若上游严格更新,提示用户一行信息并询问是否执行 git pull;同意后运行 git -C <this-skill-dir> pull --ff-only。无论结果如何都会刷新 .last_update 以避免 24 小时内重复提示。若上游相同或更旧,则静默刷新 .last_update 后继续。任何失败(离线、非 git 检出、只读路径、无权限)都静默忽略并继续用户任务,不提及失败。

API 基础:Base URL 为 https://api.figshare.com/v2;鉴权头为 Authorization: token $FIGSHARE_TOKEN;POST/PUT 请求体使用 Content-Type: application/json;建议保持约每秒不超过 1 次请求以避免限流;错误返回包含 message、code 的 JSON,常见状态码 400/401/403/404/422。

分页:多数列表端点支持 page+page_size 或 limit+offset,page_size 通常最大 1000;大批量抓取时可循环直到返回空页,并在请求间 sleep 1。

适用场景

适合需要通过命令行或自动化方式检索 Figshare 公开研究数据、批量下载文章文件、维护账户下文章与上传文件、创建集合或项目,以及发布与版本化研究产出的使用场景。

限制与注意事项

  • 发布操作不可逆:发布后文章变为公开、分配 DOI 且该版本冻结;发布前必须与用户确认。已发布文章无法直接更新,需创建新版本。
  • 创建、修改、发布或删除账户内容前必须与用户确认。
  • 上传需完整执行三步流程:若跳过 complete 调用,文件会停留在 pending 状态且不会出现在文章上。
  • 上传部件不匹配通常源于第一步提交的 md5 或 size 与实际上传字节不一致,需要重新计算并重试。
  • 403(在 /account/... 上)表示令牌缺少所需 scope,需以完整权限重新生成;401 表示令牌缺失或过期;422 常见于创建文章缺少必填字段(通常是 title)或 categories/defined_type 不合法。

参考资料

API 参考:https://docs.figshare.com/ 令牌管理:https://figshare.com/account/applications 分类 ID:GET https://api.figshare.com/v2/categories 许可证 ID:GET https://api.figshare.com/v2/licenses