Php 更新Google API V3脚本以允许使用刷新令牌
我使用的代码主要来自本教程- 我添加了行Php 更新Google API V3脚本以允许使用刷新令牌,php,oauth,google-api,Php,Oauth,Google Api,我使用的代码主要来自本教程- 我添加了行client->setAccessType(“脱机”)以便从Google接收刷新令牌,我可以从打印“来自Google的访问:”中看到该令牌$_会话['token'] 我很难理解如何使用刷新令牌来获得授权。理想情况下,我希望将此脚本更新为 -使用刷新令牌(如果可用),或 -如果不存在现有的“连接我”链接,请提供该链接 我计划最终将刷新令牌存储在一个DB中,但是为了让它最初工作,我只需要硬编码 非常感谢您的帮助 <?php set_inc
client->setAccessType(“脱机”)
以便从Google接收刷新令牌,我可以从打印“来自Google的访问:”中看到该令牌$_会话['token']代码>
我很难理解如何使用刷新令牌来获得授权。理想情况下,我希望将此脚本更新为
-使用刷新令牌(如果可用),或
-如果不存在现有的“连接我”链接,请提供该链接
我计划最终将刷新令牌存储在一个DB中,但是为了让它最初工作,我只需要硬编码
非常感谢您的帮助
<?php
set_include_path('src');
require_once 'Google/Client.php';
require_once 'Google/Service/Calendar.php';
session_start();
$client = new Google_Client();
$client->setApplicationName("Client_Library_Examples");
$client->setDeveloperKey("XXXXXXXXXXXXXXXXXXXX");
$client->setClientId('XXXXXXXXXXXXXXXXXXXX');
$client->setClientSecret('XXXXXXXXXXXXXXXXXXXX');
$client->setRedirectUri('XXXXXXXXXXXXXXXXXXXX');
$client->setAccessType("offline");
$client->setScopes(array('https://www.googleapis.com/auth/calendar'));
//For loging out.
if ($_GET['logout'] == "1") {
unset($_SESSION['token']);
}
// Step 2: The user accepted your access now you need to exchange it.
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
// Step 1: The user has not authenticated we give them a link to login
if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Connect Me!</a>";
}
// Step 3: We have access we can now create our service
if (isset($_SESSION['token'])) {
print "<a class='logout' href='".$_SERVER['PHP_SELF']."?logout=1'>LogOut</a><br>";
$client->setAccessToken($_SESSION['token']);
$service = new Google_Service_Calendar($client);
}
print "<br>";
print "Access from google: " . $_SESSION['token'];
print "<br><br>";
require_once 'calendar_app.php';
?>
这可能会有所帮助,但我还没有时间亲自测试它。非常感谢,在我的搜索中错过了这一点。我查看了一些回复,我发现Strike3R在2013年2月26日5:30发布的答案是最简单的,而且效果很好。