accounts.locations.media接口失效?求GMB地点媒体文件调用方案
处理GMB地点媒体文件的正确方案
核心问题分析
你遇到的404错误是因为v4版本的媒体列表接口已被逐步下线,Google My Business API v1已完全接管媒体相关核心功能,v4.9仅保留部分非媒体类未弃用操作。
具体解决步骤
1. 切换到v1版本的媒体接口
直接放弃v4的accounts.locations.media.list请求,所有媒体操作改用v1版本接口完成。
2. PHP客户端代码示例
// 初始化已完成OAuth2授权的客户端 $client = getAuthorizedClient(); // 创建v1版本的My Business服务实例 $service = new Google_Service_MyBusiness($client); // 替换为实际的账号ID和地点ID $parent = 'accounts/{你的账号ID}/locations/{你的地点ID}'; // 可选参数:控制返回数量、过滤媒体类型等 $optParams = [ 'pageSize' => 15, 'filter' => 'mediaType=PHOTO' ]; // 调用媒体列表接口 $mediaList = $service->accounts_locations_media->listAccountsLocationsMedia($parent, $optParams); // 遍历处理返回的媒体项 foreach ($mediaList->getMediaItems() as $media) { echo '媒体ID:' . $media->getId() . PHP_EOL; echo '图片访问地址:' . $media->getMediaUrl() . PHP_EOL; }
3. 多版本兼容注意事项
若仍需使用v4.9的其他功能,可在客户端同时加载v4.9和v1的服务定义,但所有媒体相关操作必须迁移到v1,避免调用已下线的v4接口。
4. 常见问题排查
- 确认OAuth2授权账号拥有目标地点的管理权限
- 核对账号ID和地点ID的正确性(可通过GMB后台或v1的地点列表接口获取)
- 确保使用最新版本的Google API PHP客户端,避免版本兼容问题
内容的提问来源于stack exchange,提问作者onizukaek
相关产品推荐
相关产品推荐

