2017-02-01 12 views
2

Googleドライブに問題があります。リンクの前に公開のGoogleドライブファイルをダウンロードする

https://drive.google.com/uc?export=download&id=FILE_ID

は:-(、今までうまく働いたが、今、それはもう動作しない結果がエラー404が検出されないが、ファイルが存在している私は、ファイルをアップロードすることができます。。簡単にURLをダウンロードしてビルドする。

をたとえばこの、パブリック文書を。

https://drive.google.com/uc?export=download&id=1Hz4D52yKS0qPIUrMmeYzEl_16UpdPrGhJAwSV_EaM4Y

文書が存在します。

https://docs.google.com/document/d/1Hz4D52yKS0qPIUrMmeYzEl_16UpdPrGhJAwSV_EaM4Y/edit

は、どのように私は私が直接リンクを必要とする、許可なくファイルをダウンロードすることができます。

ありがとうございました!

+0

私はそれがGoogleドライブ、もはやWebファイルをホストに戻ってリンクもうこの作品とは思いません。 – DaImTo

+0

Googleは確かにいくつかの変更を加えました。今のところどうしますか?どうすればドキュメントをダウンロードするための直接リンクを構築できますか? – user2842722

答えて

4

ダウンロードURLはのファイルで、ドライブにあります。例えばhttps://docs.google.com/uc?id=FILE_ID

問題は、ファイルではなく「Googleドキュメント」をダウンロードしようとしていることです。

Googleドキュメントをダウンロードするには、File exportメソッドを使用できます。通常は、UIメニューのFile > Download as...オプションに記載されている形式のGoogleドキュメントをダウンロードできます。

+0

良い答えありがとう、私はこれを知らなかった。そして、どうすれば "google Docs"をダウンロードできますか?何か方法はありますか? – user2842722

+1

私は自分の答えを更新しました。あなたはいくつかの質問をしましたが、答えは受け入れていません。あなたは[誰かが私の質問に答えるとどうすればいいですか?](0120)を参照してください:) –

+0

私は解決策を探しています。私はまだそれを作ることができませんでした。自分のサーバーをクライアントイベントなしでgoogleapiに接続する必要があります。私はGoogleのクライアントの認証なしでファイルをダウンロードする必要があります。これには必要なのでしょうか?よろしくお願いいたします。+ – user2842722

0

私のソリューション:

require_once '../autoload.php'; 
 
$user_to_impersonate = 'XXXXXXXXX'; 
 
putenv('GOOGLE_APPLICATION_CREDENTIALS='. __DIR__ .'/service-account.json'); 
 
$client = new Google_Client(); 
 
$client->useApplicationDefaultCredentials(); 
 
$client_email = '[email protected]'; 
 
$client->setSubject($client_email); 
 
$client->setScopes(array('https://www.googleapis.com/auth/drive')); 
 
$driveservice = new Google_Service_Drive($client); 
 
//var_dump($driveservice); 
 
$parameters = array(); 
 
if (isset($pageToken)) { 
 
    $parameters['pageToken'] = $pageToken; 
 
} 
 
$files = $driveservice->files->listFiles($parameters); 
 
$fileId = 'XXXXXXXXXXXXXXXXXXXX'; 
 
$file = $driveservice->files->export($fileId, 'application/pdf', array(
 
    'alt' => 'media')); 
 
$size  = $file->getBody()->getSize(); 
 
$content = $file->getBody()->read($size); 
 
header('Content-Type: application/octet-stream'); 
 
header("Content-Transfer-Encoding: Binary"); 
 
header("Content-disposition: attachment; filename=\"XXXX.pdf\""); 
 
echo $content;

+0

https://milanaryal.com/direct-linking-to-your-files-on-dropbox-google-drive-and-onedrive/ – user2842722

関連する問題