如何重新加载用户授权
How to reload a users authorization
我正在使用 Google 日历 API。
我在索引页面上验证用户以记录 $_GET['code'],我必须在索引上执行此操作,因为我需要获取变量以从 php 添加事件。我的印象是令牌正在更改并导致错误(我可以通过断开连接并重新连接来避免)。
这是我的索引页上 google 的连接:
$client = new Google_Client();
$client->setAuthConfig('client_secret.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$client->setRedirectUri($monsite);
$client->setAccessType('offline');
$client->setIncludeGrantedScopes(true);
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['oauth'] = $client->getAccessToken();
}
if (!isset($_SESSION['oauth'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
die();
}
此外,我正在创建的活动有创建者和来宾。这不是我要找的东西,我宁愿在日历上插入一个事件而不问这个人是否感兴趣(因为他们感兴趣)。
这是我的 PHP 页面的活动部分:
$event = new Google_Service_Calendar_Event(array(
'summary' => $client. " / " .$contrat,
'location' => $adresse,
'description' => $desc,
'start' => array(
'dateTime' => $start,
'timeZone' => 'Europe/Paris',
),
'end' => array(
'dateTime' => $end,
'timeZone' => 'Europe/Paris',
),
'attendees' => $invites,
));
因此,我希望不再有客人,但 "creators" 会提前通知谁。
回顾一下,我有两个问题:
1- 如何保持/重新加载用户身份验证。
2- 如何将事件变成 "tasks".
我不确定我是否很清楚,我可能问了很多,但它可能对我有很大帮助。
无论如何,提前感谢您的回答! :)
您可能使用 setTokenCallback();
自动刷新令牌可能会对您有所帮助。
这是用法:https://github.com/googleapis/google-api-php-client/issues/1758
需要清除缓存解析的token,为什么?
客户端将缓存访问令牌以调用具有相同范围的相同服务。要更改令牌,
$client->setAccessToken($token1);
// <call 1>
$client->getCache()->clear();
$client->setAccessToken($token2);
// <call 2>
这是问题所在:https://github.com/googleapis/google-api-php-client/issues/1672
这就是更改令牌的原因:Why caching access token is consider bad in oauth2?
我正在使用 Google 日历 API。
我在索引页面上验证用户以记录 $_GET['code'],我必须在索引上执行此操作,因为我需要获取变量以从 php 添加事件。我的印象是令牌正在更改并导致错误(我可以通过断开连接并重新连接来避免)。
这是我的索引页上 google 的连接:
$client = new Google_Client();
$client->setAuthConfig('client_secret.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$client->setRedirectUri($monsite);
$client->setAccessType('offline');
$client->setIncludeGrantedScopes(true);
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['oauth'] = $client->getAccessToken();
}
if (!isset($_SESSION['oauth'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
die();
}
此外,我正在创建的活动有创建者和来宾。这不是我要找的东西,我宁愿在日历上插入一个事件而不问这个人是否感兴趣(因为他们感兴趣)。
这是我的 PHP 页面的活动部分:
$event = new Google_Service_Calendar_Event(array(
'summary' => $client. " / " .$contrat,
'location' => $adresse,
'description' => $desc,
'start' => array(
'dateTime' => $start,
'timeZone' => 'Europe/Paris',
),
'end' => array(
'dateTime' => $end,
'timeZone' => 'Europe/Paris',
),
'attendees' => $invites,
));
因此,我希望不再有客人,但 "creators" 会提前通知谁。
回顾一下,我有两个问题:
1- 如何保持/重新加载用户身份验证。
2- 如何将事件变成 "tasks".
我不确定我是否很清楚,我可能问了很多,但它可能对我有很大帮助。
无论如何,提前感谢您的回答! :)
您可能使用 setTokenCallback();
自动刷新令牌可能会对您有所帮助。
这是用法:https://github.com/googleapis/google-api-php-client/issues/1758
需要清除缓存解析的token,为什么? 客户端将缓存访问令牌以调用具有相同范围的相同服务。要更改令牌,
$client->setAccessToken($token1);
// <call 1>
$client->getCache()->clear();
$client->setAccessToken($token2);
// <call 2>
这是问题所在:https://github.com/googleapis/google-api-php-client/issues/1672
这就是更改令牌的原因:Why caching access token is consider bad in oauth2?