使用内置接口将使用程序自带的解析接口,不过支持的平台很少,后面陆续更新
使用第三方接口需要到后端代码中修改,其文件路径是 source/application/api/controller/Apis.php文件
![](https://img.kancloud.cn/18/00/1800025cae09bede28bb61fcf2af928e_1920x902.png)
填写接口后请自行解析接口返回的信息,并用以下格式返回给小程序
![](https://img.kancloud.cn/69/e1/69e11fbcf4b572a284fa99f9a595354c_931x470.png)
![](https://img.kancloud.cn/72/9e/729eb62770f487aa3c2d8f8d7e59a3ed_950x594.png)
```
return [
"code" => 200, // 200表示解析成功 -1 表示失败
"data" => [
"title" => "这里是分享文案",
"cover" => "这里是封面图片链接",
"images" => [], // 这里是图集的数组
"video" => "这里是视频链接",
],
"msg" => "解析成功"
];
```
## 【下面提供一个案例模板】
比如我对接一个接口,然后请求返回的格式是下图这样的
![](https://img.kancloud.cn/4c/44/4c4490291978ea0a35459feb27212580_1330x373.png)
只要将data里面的数据取出来再存放就可以了,可看下面的下面的代码样例
```
public function analysis($videoUrl)
{
try {
$url = "https://解析接口/Analyse?url=" . $videoUrl;
$s = file_get_contents($url);
$s = json_decode($s, true);
// 这个接口返回的状态码code 200表示解析成功
if ($s['code'] == '200') {
// 直接取返回数据中的data值再赋值给s,相当于s就是data
$s = $s['data'];
$reData = [
"title" => $s['title'], // 将分享文案存入 reData
"cover" => $s['cover'], // 将封面链接存入
"video" => $this->getUrl302($s['url']), // 将data中的视频链接存入,某些视频链接需要302跳转拿到真实链接才可以在小程序下载
];
// 如果你的解析接口可以解析图集,可再修改下面的代码
// 如果这个接口返回的type 等于image则表示正在解析图集链接返回的数据
// if ($s['type'] == 'image') {
// 存入图集
// $reData['images'] = $s['pics'];
// } else {
// 拿到真实链接并存入视频链接
// $reData['video'] = $this->getUrl302($s['url']);
// }
// 这里返回新的格式过去就可以了
return [
"code" => 200,
"data" => $reData, // reData 就是上面设置存入的数据
"msg" => "解析成功"
];
} else {
return [
"code" => -1,
"data" => null,
"msg" => $s['message']
];
}
} catch (\Exception $e) {
return [
"code" => -1,
"data" => null,
"msg" => "解析失败,出错了"
];
}
}
```
<br><br>
## 【上面那些看不懂的话再提供一个案例模板】
~~~
public function analysis($videoUrl)
{
$data = [
// 解析接口
'url' => 'http://apis.xiaofanmo.site/home/api?uid=这里填写UID&key=这里填写KEY&url=' . $videoUrl,
// 接口返回提示信息
'msg' => 'msg',
// 文案
'title' => 'desc',
// 封面
'cover' => 'cover',
// 图集
'images' => 'pics',
// 视频
'video' => 'playAddr',
];
try {
$url = $data['url'];
$s = file_get_contents($url);
$s = json_decode($s, true);
$whole = $s;
// 这个接口返回的状态码code 0001表示解析成功
if ($s['code'] == '0001') {
// 判断解析返回接口的数据是否在 data 里面
if (!empty($s['data'])) {
$s = $s['data'];
}
// 定义新的数据格式
$reData = [
"title" => $s[$data['title']], // 将分享文案存入 reData
"cover" => $s[$data['cover']] // 将封面链接存入
];
// 判断当前是否在解析视频
if (empty($s[$data['images']]) || $s[$data['images']] == "" || $s[$data['images']] == null) {
// 拿到真实链接并存入视频链接
$reData['video'] = $this->getUrl302($s[$data['video']]);
} else {
// 存入图集
$reData['images'] = $s[$data['images']];
}
// 这里返回新的格式过去就可以了
return [
"code" => 200,
"data" => $reData, // reData 就是上面设置存入的数据
"msg" => "解析成功"
];
} else {
return [
"code" => -1,
"data" => null,
"msg" => $whole[$data['msg']]
];
}
} catch (\Exception $e) {
return [
"code" => -1,
"data" => null,
"msg" => "解析失败,出错了"
];
}
}
~~~
``