Laravel Google api 客户端获取刷新令牌并上传文件

Posted

技术标签:

【中文标题】Laravel Google api 客户端获取刷新令牌并上传文件【英文标题】:Laravel Google api client get refresh token and upload files 【发布时间】:2019-08-23 15:22:50 【问题描述】:

调用未定义的方法 GuzzleHttp\Psr7\Request::filledHeader()

这是我尝试使用刷新令牌获取访问令牌时遇到的错误。

我有 google/apiclient - ^2.0,据我所知,它适用于 guzzlehttp/guzzle: ~5.3.1|~6.0

我使用 laravel socialite 并为 google 提供服务。我正在发出离线请求以从 google 获取 refresh_token 并使用它更新当前登录的用户。到目前为止一切正常。

当我尝试创建 Google 客户端的新实例并使用刷新令牌获取令牌时,我收到以下错误

调用未定义的方法 GuzzleHttp\Psr7\Request::filledHeader()

$client = new Google_Client();
        $client->refreshToken(Auth::user()->getUserInfo()->refresh_token);
$this->drive = new Google_Service_Drive($client);

错误在 refreshToken 中。我错过了什么并且做得不对?

【问题讨论】:

【参考方案1】:

我的一个朋友找到了解决这个问题的方法。问题是 http-message's MessageInterafce 已更新,filledHeader() 方法已重命名为 hasHeader()。将 guzzle 更新为 ~6.0@dev 后一切正常。

"guzzlehttp/guzzle": "~6.0@dev"

【讨论】:

以上是关于Laravel Google api 客户端获取刷新令牌并上传文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Chrome 扩展程序获取 Laravel 护照令牌?

Auth0 Laravel:验证令牌并获取用户信息

在我的 laravel 应用程序中从我的 PHP API 获取 json 响应

Google Cloud 获取 API Key 的日志使用信息

在 Laravel 中使用 Google Drive API

Laravel 通过 Passport 实现 API 请求认证:隐式授权令牌