You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取远程Toot的ID以调用Mastodon API实现跨实例转发?

获取Mastodon远程Toot的数据库ID

要拿到远程Toot对应的目标实例数据库ID,有几个直接可行的方案:

  • 从页面DOM提取
    当你在浏览器中打开远程Toot的详情页时,Mastodon会在状态元素(通常是带有status类的根div)上添加data-id属性,这个属性值就是该Toot在其所属实例的数据库ID。你可以用Chrome扩展的内容脚本直接读取这个属性:

    // 内容脚本中获取当前页面Toot的ID
    const statusElement = document.querySelector('.status');
    const remoteTootId = statusElement?.dataset.id;
    
  • 通过Mastodon搜索API获取
    如果无法直接访问页面DOM(比如从其他页面跳转过来),可以调用Mastodon的v2搜索接口,传入远程Toot的完整URL来定位状态:

    1. 构造请求:GET /api/v2/search,携带参数:
      • q: 远程Toot的完整URL(比如https://example.social/@alice/123456789)
      • type: statuses
      • resolve: true(确保跨实例解析)
    2. 接口返回的statuses数组中,第一条结果的id字段就是目标实例的数据库ID。
  • 解析Toot的公开URL
    多数Mastodon实例的Toot公开URL格式为https://<实例域名>/@<用户名>/<数据库ID>,你可以直接提取URL路径的最后一段作为ID。但要注意少数实例可能有自定义URL规则,所以这个方法不如前两个可靠,适合快速场景验证。

另外需要注意:调用目标实例的POST /api/v1/statuses/:id/reblog接口时,必须持有该实例的用户认证凭证(比如用户登录状态下的Cookie,或者OAuth令牌),否则会返回权限错误。

内容的提问来源于stack exchange,提问作者chx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:10:20