该方法只能是用户自己把视频发布到小程序,首先用户授权小程序获取视频列表,小程序获取到后,把视频的item_id转换成encrypt_id保存下来,就能通过encrypt_id从小程序跳转到视频了
注1:假设你已经拥有了用户的openid【前端通过tt.login获取code,后端code2session获取openid】
注2:需要拥有“video.list.bind”权限
能力 -> 授权 -> 视频授权 -> 视频查询(经营能力)
注3:第一步和第五步是前端,第二、三、四是后端
第一步:用户授权,获取ticket【文档地址】
tt.showDouyinOpenAuth({
scopes: {
'video.list.bind': 0,
},
success(res) {
if (res.errMsg == 'showDouyinOpenAuth:ok') {
//这里可以使用ticket去获取视频列表
console.log(res.ticket)
}
console.log("success", res);
},
fail(res) {
console.log("fail", res);
},
complete(res) {
console.log("complete", res);
},
});
第二部:后端通过第一步获取的ticket获取accessToken。需要用到小程序的appid和secret【文档地址】
https://open.douyin.com/oauth/access_token?client_key=小程序appid&client_secret=小程序secret&grant_type=authorization_code&code=第一步获取的ticket
第三步:获取视频列表。注意:需要在请求头中带上access-token:第二部获取的accessToken【文档地址】
https://open.douyin.com/api/douyin/v1/video/video_list/?open_id=用户的openid&cursor=1&count=10
第四步:将获取到的item_id转换成encrypt_id,使用POST方式 【文档地址】
https://developer.toutiao.com/api/apps/convert_video_id/open_item_id_to_encrypt_id
$data = array(
'video_ids' => 第三步获取到的视频item_id,
'access_key' => 小程序appid
);
第五步:跳转视频
tt.navigateToVideoView({
encryptedId: 第四步中视频的encrypt_id,
success() {
console.log("跳转被分享视频播放页成功");
},
fail(err) {
console.log("跳转被分享视频播放页失败", err.errMsg, err.errCode);
},
complete() {
console.log("navigateToVideoView 调用完成");
},
});