抖音视频推广

    主要记录一下接入抖音开放平台遇到问题较多的部分(上传视频+创建视频),其他的接口可下载开放平台提供的api引入项目调用即可。

    视频推广到抖音的整个流程:授权认证(app SDK获取授权码code =》 服务端获取accessToken、获取用户信息) =》 发布视频(上传视频+创建视频)。

发布视频也可以分片上传(分片初始化上传(upload_id) =》分片上传(使用upload_id)=》分片完成上传(video_id)=》创建视频)。

    接入查询视频接口(视频管理-》查询视频=》查询视频列表)可获取视频相关数据(审核状态、统计数据),每个用户的全部视频的合计数据(今日/7日/30日)可通过编写job自行统计(开放平台也提供了单个视频的统计数据接口)。

    考虑一个用户绑定多个抖音账户问题,记录信息时建议同时记录系统userId、抖音视频itemId、抖音openId。

1、上传视频

        /**
	     *上传视频,获取video_id
	     */
		public void uploadVideo(String openId,String accessToken){
			VideoCreateAwemeCreateInlineResponse200 result;
            try {
                String url = "https://open.douyin.com/video/upload/?open_id=" + openId + "&access_token="+ accessToken;
                HttpClient httpclient = HttpClientBuilder.create().build();
                HttpPost httpPost = new HttpPost(url);
                MultipartEntityBuilder builder = MultipartEntityBuilder.create();
                //videoFlie为byte[]类型
                builder.addBinaryBody("video", videoFlie, ContentType.MULTIPART_FORM_DATA,
                         "xxx.mp4");
                HttpEntity reqEntity = builder.build();
                httpPost.setEntity(reqEntity);
                HttpResponse response = httpclient.execute(httpPost);
                String resData = EntityUtils.toString(response.getEntity());
                result = JSON.parseObject(resData, VideoCreateAwemeCreateInlineResponse200.class);
            } catch (Exception e) {
                //TODO  报错/日志处理
            }
            VideoCreateAwemeCreateInlineResponse200Data data = result.getData();
            Integer resCode = data.getErrorCode();
            //refreshToken无效,重新授权
            if (10010 == resCode
                    || 10008 == resCode) {
                //TODO 抛错->重新授权
                //accesstoken无效,刷新access_token重试
            } else if (2190002 == resCode
                    || 10010 == resCode) {
                    //刷新token 
                    refreshToken();
                    //重新上传
                    uploadVideo(openId,accessToken);
                return;
            } else if (0 != data.getErrorCode()) {
               //TODO
            }
            //创建视频
            createVideo(data.getVideo().getVideoId(),openId,accessToken);
        }

2、创建视频

 /**
     * 创建视频
     *@param videoId  创建视频接口获取的videoId
     */
   public void createVideo(String videoId,String openId,String accessToken){
 		VideoCreateAwemeCreateInlineResponse2001 result;
        try {
            String url ="https://open.douyin.com/video/create/?open_id=" + openId + "&access_token="
                    + accessToken;
            Map<String, Object> paramMap = Maps.newHashMap();
            paramMap.put("video_id", videoId);
            paramMap.put("text", "视频标题");
            String paramJson = JSON.toJSONString(paramMap);
            //post方法自行选择,这边可多设置些超时时间
            String resStr = HttpUtil.sendPost(url, paramJson, ContentTypeEnum.JSON, CharSetEnum.UTF8, 90000);
            result = JSON.parseObject(resStr, VideoCreateAwemeCreateInlineResponse2001.class);
        } catch (ApiException e) {
            //TODO 
        }
        VideoCreateAwemeCreateInlineResponse2001Data data = result.getData();
        Integer resCode = data.getErrorCode();
        //refreshToken无效,重新授权
        if (10010 == resCode
                    || 10008 == resCode) {
                //TODO 抛错->重新授权
                //accesstoken无效,刷新access_token重试
            } else if (2190002 == resCode
                    || 10010 == resCode) {
                    //刷新token 
                    refreshToken();
                    //重新上传
                    createVideo(videoId);
                    return;
            } else if (0 != data.getErrorCode()) {
               //TODO
            }
   }

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值