【问题标题】:Having an issue with get back RefreshToken in google calendar API在谷歌日历 API 中取回 RefreshToken 时遇到问题
【发布时间】:2018-02-23 05:55:53
【问题描述】:

我在从 google oauth2.0 日历 API 获取刷新访问令牌时遇到问题。我的代码是:

function getClient() {
  $client = new Google_Client();
  $client->setApplicationName(APPLICATION_NAME);
  $client->setScopes(SCOPES);
  $client->setAuthConfig(CLIENT_SECRET_PATH);
  $client->setAccessType('offline');
$client->setApprovalPrompt('force');
 $credentialsPath = expandHomeDirectory(CREDENTIALS_PATH);
  // Load previously authorized credentials from a file.
  if (file_exists($credentialsPath)) {

    $accessToken = json_decode(file_get_contents($credentialsPath), true);

    $client->setAccessToken($accessToken);

      // Refresh the token if it's expired.
      if ($client->isAccessTokenExpired()) {
                try {
        $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
                }
                catch(Exception $e) { die("Error is: ".$e->getMessage()); }  

        file_put_contents($credentialsPath, json_encode($client->getAccessToken()));
      }

    $authUrl = '';
    return $client;

  }
}

我在fetchAccessTokenWithRefreshToken 收到异常。我在哪里使用try catch。获取异常Error is: refresh token must be passed in or set as part of setAccessToken。根据 github 上的线程,我还通过客户端对象传递了 $client->setAuthConfig(CLIENT_SECRET_PATH); $client->setAccessType('offline');。 请帮忙解决这个错误。

【问题讨论】:

  • 您的$client->getRefreshToken() 似乎不包含refresh_token 部分。请检查您如何将访问令牌保存到 $credentialsPath,凭据文件缺少刷新令牌。你必须纠正这一点。也许你可以在这里分享你用来编写凭证文件的代码。

标签: php google-calendar-api google-api-php-client


【解决方案1】:

$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());

$client->getRefreshToken() 在被 $client->fetchAccessTokenWithRefreshToken() 使用之前应该存储在一个 var/object 中

$refresh_token = $client->getRefreshToken(); 
$client->fetchAccessTokenWithRefreshToken($refresh_token);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    相关资源
    最近更新 更多