当前位置: 首页 > 知识库问答 >
问题:

谷歌API oauth2令牌过期?

田嘉慕
2023-03-14
function getClient($app) 
{       
    $client = new Google_Client();
    $client->setAuthConfig("path_to_secret.json");

    switch($app)
    {
        case 'contacts':
        $client->addScope(Google_Service_Script::WWW_GOOGLE_COM_M8_FEEDS);
        $client->addScope(Google_Service_People::USERINFO_EMAIL);
        break;

        case 'calendar':
        $client->addScope(Google_Service_Calendar::CALENDAR);
        break;

        default:
        throw new Exception('API Callback not defined in setup');
    }

    $client->setAccessType('offline'); // offline access
    $client->setIncludeGrantedScopes(true);   // incremental auth
    $client->setRedirectUri(GOOGLE_APP_URL . $app.'/callback.php');
    return $client;
}

(联系人和日历有不同的代币)

同步脚本:

...
try
{
    $client = getClient('calendar');
    $client->setAccessToken(unserialize($accessToken));
    $http = $client->authorize();

    $service = new Google_Service_Calendar($client);

    ...
}

$AccesStoken是一个序列化字符串,如下所示:

a:5:{s:12:"access_token";s:131:"******token_here********";s:10:"token_type";s:6:"Bearer";s:10:"expires_in";i:3598;s:8:"id_token";s:902:"***id_token****";s:7:"created";i:1505178047;}

我做错了什么?

有趣的是,对于联系人来说,同步一直都很好(访问令牌的属性与日历同步中的属性相同)

暂时还没有答案

 类似资料:
  • 我正试图在他过期后获得一个新的访问令牌。我已将收到的信息保存在银行中,作为第一次客户访问的回报: {"access_token":"TOKEN","refresh_token":"TOKEN","token_type","承载","expires_in": 3600,"创建": 1320790426} 令牌到期后,我需要申请一个新的令牌,我这样做: 问题是总是返回以下错误:刷新OAuth2令牌时出

  • 我使用Google Oauth2编写了一个MVC应用程序,如下所示:https://developers.Google.com/api-client-library/dotnet/guide/aaa_oauth#web_applications 我有访问令牌过期的问题。当访问令牌过期时,我在调用Google API时会出现异常:“访问令牌已经过期,但我们不能刷新它” 初始身份验证是两个迭代机制:

  • 当我从Google API获得一个< code>access_token时,它带有一个< code>expires_in值。根据文档,该值表示“访问令牌的剩余寿命”。 这个值的单位是多少?

  • 我使用Google Calendar API在fullcalendar上显示事件(因此在我的视图中使用json对象)。我使用codeigniter php框架,控制器中有几个函数来创建新的客户机,然后在oauth2callback()函数中使用它来将代码交换为access_token,然后开始调用gcalendar()和gCalendar_events中的服务。我已经将accessType设置为脱

  • 我想使用谷歌作为OIDC协议的id提供商。我有一个简单的应用程序。它启动,正确地重定向到谷歌,然后返回到应用程序,打印用户详细信息并将其存储在会话中。但是,这种身份验证似乎来自id令牌,并且只有1h的过期时间 我的YML:

  • 调用execute方法时,它会引发以下异常: 谁能指出我哪里做错了?我能够从谷歌oAuth UI获得访问令牌。