这就是我使用示例 php 所做的。(所有身份验证的东西都被剥离了。)
$service = new Google_DriveService($client);
$url="the_url_to_your_document_according_to_$service->files->listFiles";
$request = new Google_HttpRequest($url);
$response = $client->getIo()->authenticatedRequest($request);
$content = $response->getResponseBody();
现在您可以通过管道$content
传递给用户(当然如果没有错误的话)。
编辑:我做了一些测试,您可以使用 Curl 身份验证直接下载。如果您收到 401 错误,则说明您使用的访问令牌已过期。只需获得一个新的(带有身份验证的新登录名)并直接进行卷曲(在 3600 或 1800 秒内):
curl -o testfile -v -H 'Authorization: Bearer ya29.yournewone' 'https://docs.google.com/feeds/download/xxx'
它对我有用。您可以根据该页面使用“downloadUrl” 。无需使用 getWebContentLink。
如果您想要长期令牌,您需要请求“刷新令牌”。您可以在此页面上找到一些信息。请求底部该页面上提到的这些数量有一些限制。
编辑#2:刚刚做了另一个测试。我可以通过添加&access_token=ya29.xxxxxxxxxx
. 'ya29.xxxxxxxxxx' 是您最新的 access_token。如果您使用 downloadUrl 而不是获取 WebContentLink(只需要最近的 access_token),则无需通过 Curl 进行身份验证,并且用户不必登录 Google。所以我可以在每个人都可以下载文件的页面上设置这个链接(大约半小时后需要刷新链接/access_token)