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

VK API:使用社群令牌调用photos.saveMessagesPhoto上传消息照片报错问题

VK社群令牌上传消息照片的问题与解决方案

问题背景

使用社群(group)令牌调用VK API的photos.getMessagesUploadServer接口时,返回的是新的v2/bulk_upload格式上传URL(例如https://pu.vk.com/gu/photo/v2/bulk_upload?token=..),而非旧版upload.php,该现象在API版本5.81至5.199中均存在。

上传成功后的响应

以file1为字段名将文件上传至该URL可成功,返回响应如下:

{
  "files": {
    "file1": {
      "sha": "7e3f064a...",
      "secret": "-179972...",
      "meta": {"height": "1006", "width": "1778"}
    }
  },
  "hash": "bd59a78b...",
  "server": "999999",
  "request_id": "..."
}

调用保存接口的失败情况

该响应无photo字段,尝试多种参数组合调用photos.saveMessagesPhoto均失败:

  • [100] 参数缺失或无效:photo未定义
    vk.photos.saveMessagesPhoto(server="999999", photo=???, hash="bd59a78b...")
    
  • [121] 无效哈希
    vk.photos.saveMessagesPhoto(server="999999", photo=json.dumps(resp['files']), hash="bd59a78b...")
    
  • [100] 参数缺失或无效:photos_list无效
    vk.photos.saveMessagesPhoto(server="999999", photo=resp['request_id'], hash="bd59a78b...")
    

已尝试的操作

  • 仅file1字段可成功上传(file0和photo字段返回error_code: 4606 "无法从请求中获取文件")
  • API版本5.81至5.199中,社群令牌始终返回v2/bulk_upload URL
  • photos.save和photos.getUploadServer接口无法通过社群令牌调用(错误码[27]:该方法不支持社群授权)
  • docs.getMessagesUploadServer仅支持doc、audio_message、graffiti类型,不支持照片

问题

是否存在方法可通过社群令牌保存经新v2/bulk_upload端点上传的照片?或当前有可用替代方法,可通过社群令牌上传照片至消息中?


可行解决方案

方案1:直接调用messages.send上传照片

针对API版本≥5.131,可直接使用messages.send接口的file参数,将照片以multipart/form-data格式发送,无需提前调用上传服务器接口。接口会自动完成照片上传并附加到消息中,示例代码:

vk.messages.send(
    peer_id=目标对话ID,
    message="附带照片的消息",
    file=open("photo.jpg", "rb"),
    random_id=随机数
)

方案2:适配新上传响应调用photos.saveMessagesPhoto

将v2/bulk_upload返回结果中files.file1的sha和secret以{sha}_{secret}的格式拼接,作为photo参数传入photos.saveMessagesPhoto,同时保留server和hash参数。正确调用示例:

photo_param = f"{resp['files']['file1']['sha']}_{resp['files']['file1']['secret']}"
vk.photos.saveMessagesPhoto(
    server=resp['server'],
    photo=photo_param,
    hash=resp['hash']
)

此方式可匹配VK API对新上传端点的解析规则,成功完成照片保存。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 07:14:50