You need to enable JavaScript to run this app. Python调用StockTwits API上传本地图片发布图表报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python调用StockTwits API上传本地图片发布图表报错如何解决

问题原因

你遇到的422错误是因为直接将本地文件路径传给了chart参数,StockTwits API会默认把该参数值当做网络URL校验,自然无法识别本地路径。

解决方法

StockTwits的消息创建接口支持两种传图方式,任选一种即可:

方式1:直接上传本地图片

通过multipart/form-data格式提交请求,将本地图片以二进制文件流的形式上传,代码示例如下:

import requests

# 基础配置
mytoken = "你的实际授权令牌"
image_path = "本地图片的完整路径,例如./trade_chart.png"
api_url = "https://api.stocktwits.com/api/2/messages/create.json"

# 普通请求参数
payload = {
    "access_token": mytoken,
    "body": "test",
    "sentiment": "bullish"
}

# 读取本地图片为二进制流
with open(image_path, "rb") as img_file:
    files = {"chart": img_file}
    # 发送请求,requests会自动设置multipart/form-data请求头
    response = requests.post(api_url, data=payload, files=files)

# 打印返回结果校验
print(response.json())

方式2:传公网可访问的图片URL

如果你的图片已经上传到公网图床,能直接通过HTTP/HTTPS链接访问,不需要额外上传文件,直接把URL赋值给chart参数即可:

import requests

mytoken = "你的实际授权令牌"
chart_public_url = "你的图片公网URL,例如https://xxx.com/chart.png"
api_url = "https://api.stocktwits.com/api/2/messages/create.json"

payload = {
    "access_token": mytoken,
    "body": "test",
    "sentiment": "bullish",
    "chart": chart_public_url
}

response = requests.post(api_url, data=payload)
print(response.json())
注意事项
  • 图片仅支持JPG、PNG格式,单张大小不可超过3MB
  • 上传成功后会返回状态码200,响应体中包含生成的消息完整信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 10:06:02