【发布时间】:2015-09-19 10:49:27
【问题描述】:
我正在尝试将文件获取到谷歌驱动器
我想使用示例来获取文件列表 使用“ID 客户端 OAuth 2.0”
一旦我使用“tokenID”,它只会工作一次,我想这就是它的工作方式,
我想使用 API 驱动器仅在我的帐户上获取文件
所以我要在后端服务器中使用
但是服务器还有其他类型的 API 授权 在 console.developers.google 中,我想这对我的想法会有所帮助,但不知道如何使用它
这是我谈论使用令牌的另一个例子
新的更新代码 我设置离线访问 笔记: 使用 cookie 仅作为示例和测试
第一次出现新问题,然后当我再次刷新时它只显示代码 没有任何结果或错误
<?php
function retrieveAllFiles($service) {
$result = array();
$pageToken = NULL;
do {
try {
$parameters = array();
if ($pageToken) {
$parameters['pageToken'] = $pageToken;
}
$files = $service->files->listFiles($parameters);
$result = array_merge($result, $files->getItems());
$pageToken = $files->getNextPageToken();
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
$pageToken = NULL;
}
} while ($pageToken);
return $result;
}
include_once "templates/base.php";
session_start();
$client_id = '';
$client_secret = '';
$redirect_uri = '{link}';
require_once realpath(dirname(__FILE__) . '/../src/Google/autoload.php');
$client = new Google_Client();
//4/N8jf5YPn4-BwY2J5v30gL5aM-78z2IL7QZMN_TV0odk#
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->setAccessType('offline');
$client->addScope("https://www.googleapis.com/auth/drive");
$client->setDeveloperKey("{Api server code here}");
if(isset($_COOKIE['code'])||isset($_GET['code']))
{
if(isset($_GET['code'])) {
setcookie('code',$_GET['code']);
echo"Saved code";
}
echo $_COOKIE['code']."<br/>";
$refreshToken=$_COOKIE['code'];
$client->authenticate($refreshToken);
if($client->isAccessTokenExpired()) {
$client->refreshToken($refreshToken);
setcookie('code',$client->getAccessToken());
echo "New token: ".$_COOKIE['code']."<br/>";
}
$service = new Google_Service_Drive($client);
var_dump(retrieveAllFiles($service));
} else
{
$authUrl = $client->createAuthUrl();
echo "<a href='$authUrl'>get code</a>";
}
【问题讨论】:
-
你说的“tokenID”,是指“Access Token”吗?访问令牌通常在一小时后过期。您是否可以一次上传文件,下次上传失败?它显示的代码是什么?
-
@Gerardo 它应该工作一个小时,但它只工作一次,此代码显示谷歌驱动器上的文件列表,第一次使用令牌工作,第二次我尝试使用相同的令牌它什么也没显示,甚至没有错误
-
@Gerardo 我缺少 php 错误
标签: google-api-php-client google-drive-realtime-api