谷姐:我们都是谷歌迷
We are all Google fans

18cm的,请进。这个接口用php应该怎么写呢?-zhongziso

Rate this post

这是快手的图床接口

    curl -H "Content-Type: application/json" -X POST -d '{"mediaType":"image","token":"xxx","fileName":"图片地址","uploadSource":"app_cp"}' "https://onvideoapi.kuaishou.com/api/video/upload/complete_upload?source=cp&__redirectURL=https%3A%2F%2Fonvideo.kuaishou.com%2Fhub%2Fcreate%2Fmaterial%3Fsource%3Dcp" -H "Cookie: xxx" -H "Origin: https://onvideo.kuaishou.com" -H "Referer: https://onvideo.kuaishou.com/" -H "Host: onvideoapi.kuaishou.com"

这是我最开始的写法

    <?php
    function PVUpload($file) {
    $post['file'] = file_path($file);
    $imgurl2 = get_curl($file,'https://onvideoapi.kuaishou.com/api/video/upload/complete_upload?source=cp&__redirectURL=https%3A%2F%2Fonvideo.kuaishou.com%2Fhub%2Fcreate%2Fmaterial%3Fsource%3Dcp', $post, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36');
    echo $file;
    $imgurl2 = json_decode($imgurl2, true);
    if(!empty($imgurl2)) {
    $imgurl= $imgurl2['data']['mediaUrl'];
    } else {
    $imgurl= '';
    }
    return $imgurl;
    }

    function get_curl($imgfile, $url, $post = 0, $ua = 0) {
    $img = $imgfile;
    $postData = array(
    "mediaType" => "image",
    "token" => "xxx",
    "fileName" => $img,
    "uploadSource" => "app_cp"
    );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    // 不验证证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    // 最大执行时间
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    $httpheader[] = "Content-Type: application/json";
    $httpheader[] = "Cookie: xxx";
    $httpheader[] = "Origin: https://onvideo.kuaishou.com";
    $httpheader[] = "Referer: https://onvideo.kuaishou.com/";
    $httpheader[] = "Host: onvideoapi.kuaishou.com";
    //$ip = mt_rand(48, 140) . "." . mt_rand(10, 240) . "." . mt_rand(10, 240) . "." . mt_rand(10, 240);
    //随机 ip
    //$httpheader[] = 'CLIENT-IP:' . $ip;
    //$httpheader[] = 'X-FORWARDED-FOR:' . $ip;
    curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
    //curl_setopt($ch, CURLOPT_ENCODING, "gzip");
    //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $ret = curl_exec($ch);
    curl_close($ch);
    return $ret;
    }

    function file_path($file) {
    if (class_exists('CURLFile')) {
    return $post['file'] = new \CURLFile(realpath($file));
    } else {
    return $post['file'] = '@' . realpath($file);
    }
    }
    ?>

测试了很多遍,上传不了文件。来个大佬指点一下,谢谢!

热议
2楼 zhongziso 昨天17:48

来个吴彦祖指点一下

3楼 qq53988545 昨天17:52

量了一下我的不止18cm,绑定

4楼 wwt654 昨天17:55

$ua这个变量有赋值,没看到代码调用啊

5楼 zhongziso 昨天17:56

$ua这个变量有赋值,没看到代码调用啊

UA这个不写都可以,第一个命令。使用curl命令行测试可以上传

6楼 sdqu 昨天18:00

对比一下自己的curl发出去的包和命令行的有什么差异吧

7楼 wwt654 昨天18:04

UA这个不写都可以,第一个命令。使用curl命令行测试可以上传

那是不是路径的问题,我看你获取了文件的绝对路径$post['file'],但是没有调用,方法里还是用的$file

9楼 mjjok 昨天18:17

顶一下。。。。

10楼 zhongziso 昨天18:42

没你想的那么简单,数据是在 token 里面

能帮改一下吗?谢谢

12楼 inighty 半小时前

肯定没这么简单上传有前置请求
https://onvideoapi.kuaishou.com/api/video/upload/token
这个请求会返回token

真正的上传接口是https://upload.kuaishouzt.com/api/upload/fragment
进行碎片 多请求上传

然后发送
https://upload.kuaishouzt.com/api/upload/complete服务端返回是否上传完成

最后发送这个请求
https://onvideoapi.kuaishou.com/api/video/upload/complete_upload
服务端返回上传后的url

13楼 zhongziso 15分钟前

肯定没这么简单上传有前置请求
https://onvideoapi.kuaishou.com/api/video/upload/token
这个请求会返回 ...

这么复杂啊

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » 18cm的,请进。这个接口用php应该怎么写呢?-zhongziso
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活