跳转至

Settings 模块(账号设置)

settings 模块提供账号设置查询功能。settings get 命令合并查询敏感内容设置和账号基础设置,一次返回完整配置快照。

目录


settings get — 查询账号设置

合并查询以下两组设置并在单次输出中返回:

  • sensitive 设置:敏感内容显示、搜索安全过滤
  • account 设置:账号级别的 NSFW 标记、语言、时区等

语法

twitter-cli [全局 flags] settings get

参数

无需额外参数。

成功示例

twitter-cli --cookies-file cookies.txt settings get

输出:

{"success":true,"data":{"sensitive":{"display_sensitive_media":false,"nsfw_user":false,"opt_in_filtering":true,"opt_in_blocking":true},"account":{"screen_name":"myaccount","language":"zh-cn","time_zone":{"name":"Asia/Shanghai","utc_offset":28800,"tzinfo_name":"Asia/Shanghai"},"sleep_time":{"enabled":false,"start_time":null,"end_time":null},"allow_dm_groups":true,"allow_dms_from":"following","protected":false,"geo_enabled":false}},"error":null,"meta":{"module":"settings","action":"get","elapsed_ms":428,"timestamp":"2026-04-17T10:45:00Z","cli_version":"1.0.0","schema_version":"1.0"}}

失败示例

{"success":false,"data":null,"error":{"code":"AUTH_FAILED","message":"Twitter 返回 401,cookies 可能已过期","retryable":false,"retry_after_secs":null,"docs_url":"https://x-api-rs.es007.com/cli/getting-started/#cookies","recovery_actions":["重新从浏览器导出 cookies","确认 cookies 包含 ct0 和 auth_token 字段"],"issue_url":null,"details":{"http_status":401}},"meta":{"module":"settings","action":"get","elapsed_ms":132,"timestamp":"2026-04-17T10:46:00Z","cli_version":"1.0.0","schema_version":"1.0"}}

返回字段说明

sensitive 字段

字段 类型 说明
display_sensitive_media bool 是否显示敏感内容(true = 显示,false = 过滤)
nsfw_user bool 账号是否被标记为 NSFW 内容创作者
opt_in_filtering bool 是否开启搜索安全过滤(true = 过滤敏感搜索结果)
opt_in_blocking bool 是否开启搜索屏蔽(true = 屏蔽特定内容的搜索结果)

account 字段

字段 类型 说明
screen_name string 当前账号的用户名
language string 账号语言设置(如 "zh-cn""en"
time_zone.name string 时区显示名称(如 "Asia/Shanghai"
time_zone.utc_offset number UTC 偏移量(秒,如 28800 = UTC+8)
time_zone.tzinfo_name string 时区 IANA 名称
sleep_time.enabled bool 是否开启免打扰时段
sleep_time.start_time number | null 免打扰开始时间(小时,0-23)
sleep_time.end_time number | null 免打扰结束时间(小时,0-23)
allow_dm_groups bool 是否允许加入私信群组
allow_dms_from string 允许谁发私信("following" / "verified" / "everyone")
protected bool 账号是否受保护(私密推文)
geo_enabled bool 是否开启地理位置标记

使用场景

检查敏感内容设置

twitter-cli --cookies-file cookies.txt settings get | \
  jq '.data.sensitive'

输出:

{
  "display_sensitive_media": false,
  "nsfw_user": false,
  "opt_in_filtering": true,
  "opt_in_blocking": true
}

验证账号配置

# 检查 DM 权限设置
twitter-cli --cookies-file cookies.txt settings get | \
  jq '{allow_dms_from: .data.account.allow_dms_from, allow_groups: .data.account.allow_dm_groups}'

多账号配置对比

# 对比两个账号的设置
for cookies_file in account1.txt account2.txt; do
  echo "=== $cookies_file ==="
  twitter-cli --cookies-file "$cookies_file" settings get | \
    jq '{screen_name: .data.account.screen_name, sensitive: .data.sensitive}'
done

在自动化流程中验证账号状态

result=$(twitter-cli --cookies-file cookies.txt settings get)

# 检查是否认证成功
if ! echo "$result" | jq -e '.success' > /dev/null 2>&1; then
  echo "设置查询失败,跳过此账号"
  exit 1
fi

# 检查账号是否被保护(影响帖子可见性)
protected=$(echo "$result" | jq '.data.account.protected')
if [ "$protected" = "true" ]; then
  echo "警告:此账号为受保护账号,发布的帖子只有粉丝可见"
fi

# 检查 DM 权限
allow_dms=$(echo "$result" | jq -r '.data.account.allow_dms_from')
echo "当前允许接收私信来源:$allow_dms"

注意事项

  • settings get 仅支持查询,不支持修改设置
  • 修改设置需要使用 Python API(client.settings.set_sensitive_account() 等)
  • 两组设置(sensitive / account)通过两次独立 API 请求合并获取,耗时略高于单模块命令
  • 如果其中一组请求失败,整个命令返回失败

常见错误

错误码 原因 解决方法
AUTH_FAILED cookies 过期或权限不足 重新导出 cookies
RATE_LIMIT 查询过于频繁 等待后重试
SERVER Twitter 服务端异常 稍后重试