gist.github.com/lcherone/91fadc5411fa08d97e6bdb556ea97c6d

у создать прямую ссылку на скачивание Google Drive без открытия веб-страницы.

Я нашел 1 сайт, который делает то же самое, но я не нашел, как он делает.

ниже находится сайт, который генерирует прямую ссылку для скачивания без открытия страницы Google Drive.

https://links-safety.com/download.php?id=0B475ByfcR9n4a1JMVEZxQno2Tmc

0B475ByfcR9n4a1JMVEZxQno2Tmc - файл google и заменяется любым файлом.

Может ли кто-нибудь сказать мне, как я могу это сделать? Я хочу сделать ту же страницу, как выше сайта.

Я попробовал этот URL, но он не работает. вместо начала загрузки открывается страница.

https://drive.google.com/uc?id=0BwSYfbOPSw89Rno4LTZpSGF6RUE

Ответы на вопрос(1)

Решение Вопроса

он генерирует следующий javascript.

<script>
    setTimeout(function() {
        window.location.href = "https://doc-0o-a0-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/nemv3kbhggb02fn2933p80ec5vsi521t/1512345600000/10410701494873540224/*/0B475ByfcR9n4a1JMVEZxQno2Tmc?e=download";
    }, 300);
</script>

Но откуда этот URL?

Немного повозившись и посмотрев, как консоль запрашивает подтверждение в Google, вы можете увидеть, что она выполняет запрос POST и возвращает json.

)]}'
{"disposition":"SCAN_CLEAN","downloadUrl":"https://doc-0c-9k-docs.googleusercontent.com/docs/securesc/aonp7ed1gjmns5tl5di4fl0psa1cppk8/16panrhf9etu7sqgddkaduij5anokf8t/1512345600000/17294955007197410767/17294955007197410767/0ByzJffaEk18uN2ZLeGlIRGVOaDJmWS1WU1RUN3dXUGdtUUx3?e\u003ddownload","fileName":"install.sh","scanResult":"OK","sizeBytes":4936}

Так что просто издевайтесь над этим с PHP

Сделайте запрос JSON POST на этот URL, Google ответит с помощью JSON, а затем просто удалите)]}' JSON декодирует его, а затем использует заголовок для перенаправления в файл.

<?php
$id = '0B475ByfcR9n4a1JMVEZxQno2Tmc';

$ch = curl_init('https://drive.google.com/uc?id='.$id.'&export=download');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, []);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    ... see notice below
));                                                                                                                                                                          
$result = curl_exec($ch);

$object = json_decode(str_replace(')]}\'', '', $result));

exit(header('Location: '. $object->downloadUrl));

Изменить (08-04-18)

Похоже, что были добавлены некоторые дополнительные заголовки, в случае пропуска он выдаст 400 Bad Request. Не важно, по-прежнему легко издеваться над ним, просматривая заголовки запросов при загрузке файла с вашего собственного диска. Я не хочу делиться решением для копирования и вставки, поскольку вышеприведенное все еще работает, вам просто нужно добавить несколько заголовков, а StackOverflow не является бесплатной службой кодирования, и при этом я не обязан поддерживать каждый ответ, который я когда-либо писал. Удачи.

 Lawrence Cherone25 мая 2018 г., 05:15
 Lawrence Cherone04 дек. 2017 г., 17:53
добро пожаловать, данный php очень сырой, поэтому вы должны обязательно добавить несколько проверок, чтобы избежать ситуаций, когда$result или же$object->downloadUrl пустой. Удачного кодирования.
 emma worksy08 янв. 2018 г., 16:18
Размер загружаемого файла неизвестен, хотя размер файла. как это решить? я хочу добавить пользовательские заголовки, такие как header ('Content-type: application / zip');
 Lawrence Cherone08 янв. 2018 г., 16:22
@emmaworksy значение вsizeBytes
 emma worksy04 дек. 2017 г., 17:40
Спасибо большое.

Ваш ответ на вопрос