Settings 模块(账号设置)¶
settings 模块提供账号设置查询功能。settings get 命令合并查询敏感内容设置和账号基础设置,一次返回完整配置快照。
目录¶
settings get — 查询账号设置¶
合并查询以下两组设置并在单次输出中返回:
- sensitive 设置:敏感内容显示、搜索安全过滤
- account 设置:账号级别的 NSFW 标记、语言、时区等
语法¶
参数¶
无需额外参数。
成功示例¶
输出:
{"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 | 是否开启地理位置标记 |
使用场景¶
检查敏感内容设置¶
输出:
{
"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 服务端异常 | 稍后重试 |