使用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:
上传本地文件获取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"]使用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
相关产品推荐
相关产品推荐

