我的身份验证和上传代码如下:
$client = new Google_Client();
$client->setClientId('clientid');
$client->setClientSecret('clientsecret');
$client->setAccessType("offline");
$client->setRedirectUri('http://localhost:60/pathtofile.php');
$client->setScopes(array('https://www.googleapis.com/auth/drive.file'));
session_start();
if (isset($_GET['code']) || (isset($_SESSION['access_token']) && $_SESSION['access_token'])) {
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
} else
$client->setAccessToken($_SESSION['access_token']);
$service = new Google_Service_Drive($client);
//Insert a file
$file = new Google_Service_Drive_DriveFile();
//$file->setName(uniqid().'.zip');
$file->setName($zipName . '.zip');
$file->setDescription('Testing document ZIP backups');
$file->setMimeType('application/zip');
$data = file_get_contents($zipPath = $publicPath . '\\removedorgname\\backups\\' . $zipName . '.zip');
$createdFile = $service->files->create($file, array(
'data' => $data,
'mimeType' => 'application/zip',
'uploadType' => 'multipart'
));
print_r($createdFile);
} else {
$authUrl = $client->createAuthUrl();
header('Location: ' . $authUrl);
exit();
}
我面临的问题是,它要求我手动登录到谷歌账户。我研究了刷新令牌的概念,但不明白如何实现它。
我想我已经找到了解决问题的方法,这是正确还是不正确?
现在您有了访问令牌(该令牌将过期),您需要刷新令牌。
$_SESSION['access_token'] = $client->getAccessToken();
$token = $client->getAccessToken();
var_dump($token;)
if ($client->isAccessTokenExpired()) {
$client->fetchAccessTokenWithRefreshToken('removedtoken');
}
这是我收到的错误
这段代码运行良好: 有人能帮我修一下密码吗?
谢了!
我对谷歌云存储(GCS)一无所知。 这是我的场景。 我为我的应用程序用户创建一个GCS,以上载他们的媒体文件。所有用户无需登录Google帐户即可上传到GCS,但需要我的应用程序中经过身份验证的用户。并通过客户端浏览器上传至地面军事系统(无服务器代码)。 阅读文档后,部分让我困惑。 OAuth 2.0身份验证(必需的谷歌帐户) 有人能给我解释一下2号和3号吗?尤其是3号,因为它让我 这让我不知道如
谷歌浏览器可以当问其他页面,但是无法登录账号,打开会显示这个,大佬们如何解决?