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

使用Pinterest API V5上传本地图片创建Pin遇格式错误求助

解决Pinterest API创建Pin时本地文件无法使用的问题

你遇到的问题本质是:Pinterest API的image_url类型要求传入可公开访问的HTTPS URL,本地文件路径(比如C:/xxx.jpg)不属于合法URL格式,且API服务器无法直接访问你的本地文件系统,因此报错。

核心结论

Pinterest API没有直接支持本地文件路径的source_type参数,你需要通过以下两种方式解决:


方法1:将本地文件上传到公开HTTPS服务器

把本地图片上传到支持HTTPS访问的云存储(如AWS S3、阿里云OSS)或临时图床,获取公开的HTTPS URL后,沿用你已验证可行的image_url配置:

MEDIA_SOURCE = {                 
    "source_type": "image_url",                 
    "content_type": "image/jpeg",                 
    "url": "https://your-public-image-url.jpg"                 
}

方法2:先上传文件到Pinterest媒体服务器,再用media_id创建Pin

Pinterest API提供了专门的媒体上传端点,先把本地文件上传到Pinterest服务器,拿到media_id后再创建Pin:

  1. 上传本地文件获取media_id
    发送POST请求到https://api.pinterest.com/v5/media,请求体使用multipart/form-data格式携带文件:

    import requests
    
    url = "https://api.pinterest.com/v5/media"
    headers = {
        "Authorization": "Bearer YOUR_ACCESS_TOKEN"
    }
    files = {
        "file": open("C:/Users/USER/Images/Cat/3D62226C-A2F9-4171-BF04-B03AF416CD46.jpg", "rb")
    }
    response = requests.post(url, headers=headers, files=files)
    media_id = response.json()["id"]
    
  2. 使用media_id创建Pin
    创建Pin时,media_source的source_type设为media_id,并传入刚才获取的ID:

    MEDIA_SOURCE = {                 
        "source_type": "media_id",                 
        "media_id": media_id                 
    }
    

注意事项

  • 确保你的访问令牌(YOUR_ACCESS_TOKEN)拥有media:write和pins:write权限
  • 上传文件时,支持的图片格式包括JPEG、PNG,文件大小不超过10MB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:10:08