全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1379|回复: 12

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

[复制链接]
发表于 2022-8-11 17:47:16 | 显示全部楼层 |阅读模式
这是快手的图床接口
  1. 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"
复制代码


这是我最开始的写法
  1. <?php
  2. function PVUpload($file) {
  3.         $post['file'] = file_path($file);
  4.         $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');
  5.         echo $file;
  6.         $imgurl2 = json_decode($imgurl2, true);
  7.         if(!empty($imgurl2)) {
  8.                 $imgurl= $imgurl2['data']['mediaUrl'];
  9.         } else {
  10.                 $imgurl= '';
  11.         }
  12.         return $imgurl;
  13. }

  14. function get_curl($imgfile, $url, $post = 0, $ua = 0) {
  15.         $img = $imgfile;
  16.         $postData = array(
  17.   "mediaType" => "image",
  18.   "token" => "xxx",
  19.   "fileName" => $img,
  20.   "uploadSource" => "app_cp"
  21. );
  22.         $ch = curl_init();
  23.         curl_setopt($ch, CURLOPT_URL, $url);
  24.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  25.         curl_setopt($ch, CURLOPT_POST, 1);
  26.         curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  27.         // 不验证证书
  28.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  29.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  30.         // 最大执行时间
  31.         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
  32.         curl_setopt($ch, CURLOPT_TIMEOUT, 120);
  33.         $httpheader[] = "Content-Type: application/json";
  34.         $httpheader[] = "Cookie: xxx";
  35.         $httpheader[] = "Origin: https://onvideo.kuaishou.com";
  36.         $httpheader[] = "Referer: https://onvideo.kuaishou.com/";
  37.         $httpheader[] = "Host: onvideoapi.kuaishou.com";
  38.         //$ip = mt_rand(48, 140) . "." . mt_rand(10, 240) . "." . mt_rand(10, 240) . "." . mt_rand(10, 240);
  39.         //随机 ip
  40.         //$httpheader[] = 'CLIENT-IP:' . $ip;
  41.         //$httpheader[] = 'X-FORWARDED-FOR:' . $ip;
  42.         curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
  43.         //curl_setopt($ch, CURLOPT_ENCODING, "gzip");
  44.         //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  45.         $ret = curl_exec($ch);
  46.         curl_close($ch);
  47.         return $ret;
  48. }

  49. function file_path($file) {
  50.         if (class_exists('CURLFile')) {
  51.                 return $post['file'] = new \CURLFile(realpath($file));
  52.         } else {
  53.                 return $post['file'] = '@' . realpath($file);
  54.         }
  55. }
  56. ?>
复制代码


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

 楼主| 发表于 2022-8-11 17:48:31 | 显示全部楼层
来个吴彦祖指点一下
发表于 2022-8-11 17:52:33 来自手机 | 显示全部楼层
量了一下我的不止18cm,绑定
发表于 2022-8-11 17:55:00 | 显示全部楼层
$ua这个变量有赋值,没看到代码调用啊
 楼主| 发表于 2022-8-11 17:56:49 | 显示全部楼层
wwt654 发表于 2022-8-11 17:55
$ua这个变量有赋值,没看到代码调用啊

UA这个不写都可以,第一个命令。使用curl命令行测试可以上传
发表于 2022-8-11 18:00:07 | 显示全部楼层
对比一下自己的curl发出去的包和命令行的有什么差异吧
发表于 2022-8-11 18:04:52 | 显示全部楼层
zhongziso 发表于 2022-8-11 17:56
UA这个不写都可以,第一个命令。使用curl命令行测试可以上传

那是不是路径的问题,我看你获取了文件的绝对路径$post['file'],但是没有调用,方法里还是用的$file
发表于 2022-8-11 18:15:26 | 显示全部楼层
没你想的那么简单,数据是在 token 里面
  1. {"mediaType":"image","token":"Cg51cGxvYWRxlci50b2tlbhKBAqWKeXQRSPP_f8jVshavPTQKc1MWJUCoDJmhYn9ERNe289JCYyqTIVepamRJfamsxoem6ObW0EJ1bZvLVetkIsUwEJEtEW16M91396cm9pP5uxR_djdMBtFxqOtyVfbx5jJ2wY5CTKjzEzpLjTdWQTdnLpc_7BLQj6cTdofUaMgf_1lVoZL31jb3sl2Xw9JIlHkAynPYvF1vdJWPUcZySfr0dDz0nxVvECXZhjVpoKWc02L7KNSZ0YwAV0HBvUdpXS9dyJZv4TzYYheJ5wtd_DmKNPVUY6IG8JGXHP-g3lomFvI2ZUpy3_l9klSbaoxoeVOACn_11Tx451jLHmVrrtWQGhK-2iGxzJGIn-mQHYRspHbwVkIoBTAC","fileName":"screenshot.png","uploadSource":"picasso_onvideo"}
复制代码
 楼主| 发表于 2022-8-11 18:42:36 | 显示全部楼层
920 发表于 2022-8-11 18:15
没你想的那么简单,数据是在 token 里面

能帮改一下吗?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-9 14:52 , Processed in 0.064355 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表