【问题标题】:direct download link for google drive link [duplicate]谷歌驱动器链接的直接下载链接[重复]
【发布时间】:2018-03-13 10:13:43
【问题描述】:
<?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'));                                                                                                                                                                          
$result = curl_exec($ch);

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

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

我曾尝试生成 google drive 直接下载链接,但未使用此代码成功打开网页,但今天无法正常工作:

【问题讨论】:

  • 当我复制/粘贴你的代码时,我得到一个400 Bad Request
  • 400 Bad Request 表示未提供必填字段或参数,提供的值无效,或提供的字段组合无效。 Drive 还支持通过 webViewLink 属性中的 URL 让用户直接访问文件。您可以查看此链接作为参考:stackoverflow.com/questions/47625214/….

标签: php google-drive-api


【解决方案1】:

google drive视频分享链接到下载链接转换

$download_link = preg_replace('/\/file\/d\/(\w+)\/view\?usp=sharing/',"/uc?export=download&id=$1", $sharing_file_name)

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
  • 用这个替换正则表达式以包含其他usp参数(如drivesdk):\/file\/d\/(\w+)\/view\?(.+)
【解决方案2】:
<?php 

$id = '1IE2K47kVpcIUpLXDjtOcveiTnH9d4PUR';

$kntl = 'https://drive.google.com/uc?export=download&confirm=Ss_7&id='.$id.'';


    function downlah($url){
     $data = curl_init();
     curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($data, CURLOPT_URL, $url);
     $hasil = curl_exec($data);
     curl_close($data);
     return $hasil;
}
$dnanaoid =  downlah($kntl);

 $lnacoisncis = explode('<A HREF="', $dnanaoid);

$sdcpajpo = explode('">', $lnacoisncis[1]);


echo $directlink = $sdcpajpo[0]; //DIRECT LINK
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多