抖音网站应用开发踩坑记录
一些准备工作就不多说了,还是需要申请一段时间的。你要拿到自己的应用Client Key和Client Secret。
下面将已抖音发布视频接口进行说明,内容比较简单,希望有所帮助!同时需要注意的是:下面均为演示demo,尚未进行“加工”仅作为参考示例!
安装SDK
抖音删除了之前推出的PHP版SDK(可能是写的太烂了吧),而且文档也太随心所欲了,我们这里找到一个简单整合的sdk使用 composer进行安装
composer require liaodan100/douyin_sdk
拉起授权并获取授权code
use ByteDance\App as AppServe; $app = AppServe::make('Douyin', ['client_key' => '你的key', 'client_secret' => '你的secret']); $url = $app->connect(['video.create','aweme.share','video.data','video.list'] , '你的回调地址' , ''); // 数组参数表示授权的Scope echo $url; // 生成授权登录地址,你可以生成二维码使用抖音扫码即可进入授权页面
自己的scope如何查找?
以上代码会返回一段url,你可以 使用抖音直接访问此url会进入授权页面,类似微信公众号授权页面吧!
这里需要注意的是,回调文件要使用get接收如:$_GET 里面你需要拿到code参数,示例:
$code = $_GET['code'];
是不是有点坑的 感觉,正常的回调参数都是需要post接收的不是么。。。
拿到 code去获取access_token
$result = $app->access_token($code); // 拿到所需要的返回值 $result = json_decode($result->response,true)['data']; // 此时$result里面将包含 access_token、openid等重要参数,记录缓存即可!
调用上传视频接口/video/upload
在创建视频之前,我们需要调用此接口拿到video_id来进行发布,请求地址参数就需要用到上一步拿到的open_id和access_token参数值了
public function uploadVideo() { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://open.douyin.com/video/upload?open_id=' . $this->authData['open_id'] . '&access_token=' . $this->authData['access_token'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array('video' => new \CURLFILE(WEB_PATH . 'upload/59c21cd10410f.mp4'), '' => ''), // 这里需要选择的是本地视频路径 )); $response = curl_exec($curl); curl_close($curl); $response = json_decode($response, true); // 发布视频 echo $response['data']['video']['video_id']; // 拿到video_id准备去发布吧 }
调用创建视频接口 /video/create进行发布视频吧
public function createVideo($video_id) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://open.douyin.com/video/create?open_id=' . $this->authData['open_id'] . '&access_token=' . $this->authData['access_token'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode(array( 'video_id' => $video_id, 'text' => '我的演示视频 #演示', )), )); $response = curl_exec($curl); curl_close($curl); echo $response; }
需要注意的是,这里的body参数必须是json格式的,否则会出现参数不合法的报错!
这时候看看自己的抖音是不是已经发布成功了呢!
参考文档:https://open.douyin.com/platform/doc/6848798087398295555
结束
到这里就结束了,希望此记录会帮助你们节省一些开发的宝贵时间吧!
评论
白北方
回复抖音上传视频/video/upload 接口,一个30M的视频二十多秒才返回结果这正常吗
tommy
回复createVideo 的时候 一直参数不合法 你有遇到么
tommy
回复作者还在么
xygbc
回复返回值都拿到了可是抖音里没那条动态
小猪
回复你好,我的用不了,可以帮看一下吗,红包感谢
隔壁小孩
回复我没有看哭啊~
金毛囊植发
回复作者文章语言优美内容充实主题明确引人入胜,隔壁小孩都看哭了。。**.zhifazhifa.com