Google API PHP Refresh Token返回NULL

has*_*rsa 6 php google-api google-api-php-client

我正在使用Google API Client Library for PHP进行离线身份验证,但是当我使用此代码时:

$this->google->refreshToken($result["google_refresh_token"]));
Run Code Online (Sandbox Code Playgroud)

它返回NULL.

$this->google 指的是Google_Client类的一个实例.

任何人都知道这可能是什么?

如果我尝试更改给定的刷新令牌,则会返回Google异常错误,因此它应该是有效的令牌.

谢谢!

编辑:

'client_id' => 'myclientid',
      'client_secret' => 'myclientsecret',
      'redirect_uri' => 'mypage',
      'developer_key' => 'mydeveloperkey',

      // Other parameters.
      'access_type' => 'offline',
      'approval_prompt' => 'force',
Run Code Online (Sandbox Code Playgroud)

也许这有助于你

Chr*_*isB 9

我有相同的问题已经有一段时间了.对我来说,这是因为,出于某种原因,Google只在您第一次请求令牌时向您发送刷新令牌.因此,您必须确保为该用户存储该刷新令牌,因为Google不会再给您.

对于发展来说,这可能是一个真正的痛苦 您可以让Google向您发送新的刷新令牌,但您要做的是取消授权您通过应用程序授权的任何帐户.您可以在Google安全设置中执行此操作.

希望这可以帮助!


has*_*rsa 5

我现在使用一种非常简单的方法来避免该refresh_token()方法。我只是保存了第一个请求的整个JSON响应,并将其提供给该setAccesToken()方法。如果访问令牌过期,它将自动从给定的JSON获取一个新令牌。

  • 您能添加一些示例代码吗? (2认同)