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

Mastodon API /api/v2/search调用异常:无法获取预期状态内容

问题解决:Mastodon API搜索状态并获取content

明确说明:搜索Mastodon状态并返回content是完全可行的,你的代码存在两个关键问题,以下是针对性解决方法:

问题一:指定type='statuses'时无结果

你的代码错误地用data=params传递GET请求参数,data是用于POST请求的表单数据,GET请求的参数必须通过params参数传递,这样参数才会被正确拼接到URL中。

修正后的代码:

import requests

url = 'https://<server>/api/v2/search'
auth = {'Authorization': 'Bearer <token>'}
params = {'q': '<keyword>', 'type':'statuses', 'resolve': True}  # resolve参数确保跨实例内容可被检索

response = requests.get(url, params=params, headers=auth)
# 打印响应查看结果
print(response.json())

额外注意:

  • 替换<server>为你实际使用的Mastodon实例域名(如mastodon.social)
  • 替换<token>为具备read:search权限的有效访问令牌
  • 若搜索其他实例的状态,resolve=True能帮助当前实例解析跨站内容

问题二:不限制类型时无content字段

你返回的结果仅包含hashtag,说明搜索关键词是纯标签(比如hiring),此时API优先返回标签数据。若要获取状态文本的content字段:

  1. 确保搜索关键词是状态中的普通文本(若要搜索带标签的状态,可直接用#hiring作为关键词)
  2. 明确指定type='statuses'并正确传递参数后,返回的statuses数组中每个对象都会包含content字段,与官方文档示例一致。

示例响应结构(搜索普通文本关键词时):

{
  "accounts": [],
  "statuses": [
    {
      "id": "12345",
      "content": "<p>Hello world! This is a test status.</p>",
      // 其他状态字段...
    }
  ],
  "hashtags": []
}

提取content只需遍历response.json()['statuses'],取出每个元素的content字段即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:46:07