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

PHP Gmail API获取附件返回Guzzle Request Object问题求助

PHP版Gmail API获取附件返回Guzzle对象解决方案
  • 优先检查Google客户端初始化配置:如果开启了$client->setReturnRawResponse(true),API会直接返回Guzzle响应对象而非封装好的服务类实例。你可以将该配置改为false,即可正常获取Google_Service_Gmail_MessageAttachment实例,调用getData()方法拿到附件数据。
  • 若你确实需要保留返回原始响应的配置,可以直接从Guzzle对象中读取数据:调用$response->getBody()->getContents()获取响应体字符串,自行JSON解码后提取data字段即可。
  • 检查SDK版本:旧版本google/apiclient存在已知的返回值类型异常bug,可执行composer命令升级到最新稳定版:composer update google/apiclient:^2.15。
  • 自定义Guzzle实例排查:如果你在初始化Google Client时传入了自定义配置的Guzzle客户端,可先移除自定义Guzzle实例配置,使用SDK默认生成的客户端测试是否恢复正常,排除自定义中间件/配置修改返回值的可能。
  • 强制指定返回格式:调用get方法时新增第四参数指定返回格式,代码示例:
    Google_Service_Gmail->users_messages_attachments->get('me', $messageId, $attachmentId, ['alt' => 'json']);
    

补充说明:通过getData()拿到的附件内容是Base64URL编码格式,需要转换后才能得到正常的PDF二进制数据,转换代码参考:

$base64Str = str_replace(['-', '_'], ['+', '/'], $attachment->getData());
$pdfBinary = base64_decode($base64Str);

内容的提问来源于stack exchange,提问作者Tommy Evans-Barton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:36:04