1. 前言
在开发中,我们时常需要使用一些公共API,比如获取天气、获取快递信息等等。而使用API不仅可以减轻我们的工作量,还可以节省我们的时间成本。今天,我将介绍一种使用PHP连接百度文心一言API获取随机语句的方法。
2. 百度文心一言API介绍
2.1 API说明
文心一言(Hitokoto)是一个开源的应用程序接口(API),可以让开发者在自己的应用程序中获取一个句子或者一段文字。这些句子来自于动漫、小说、网络、名人名言等等,旨在打造一个简单、易用、轻量级的 API。
API地址:https://developer.hitokoto.cn/sentence/。
2.2 API请求
请求方式:GET
请求地址:https://v1.hitokoto.cn/
请求参数:
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
c | 字符串 | 可选 | cat,即分类,可以用逗号分隔多个分类,以限制句子的类型,可选值为以下类型(可选参数,但限制为5个):a(Anime)、b(Comic)、c(Game)、d(Novel)、e(Myself)、f(Internet)、g(Other)、h(诗词)、i(网易云)。默认值为 all。 |
charset | 字符串 | 可选 | 返回的数据编码格式,可选值为 utf-8 或者 gbk,如果不设置此参数,默认为 utf-8 编码。如果你遇到了乱码问题,可以设置此项为 gbk,服务器会返回 gbk 编码的数据。 |
encode | 字符串 | 可选 | 返回的数据内容编码方式,默认值为 js,可选值为:js,可以直接用于 JavaScript 代码中,即返回 js 变量声明的格式;json,可以直接转换为 JSON 格式;text,返回纯文本内容。 |
length | 字符串 | 可选 | 限制句子的最大长度,默认值为 200。 |
password | 字符串 | 可选 | 如果你设置了句子密码,则只有提供了正确密码的请求才会返回数据。 |
privacy | 字符串 | 可选 | 指定返回句子是否含有用户敏感信息,默认为 public,所有句子都会返回。可选值:public,返回所有句子;private,返回不含用户敏感信息的句子;secret,返回完全保密的句子,只有管理员和神秘人可以看到。 |
source | 字符串 | 可选 | 指定返回句子的来源,默认值为空,即返回所有来源的句子。可选值为:网络、猫眼电影、知乎。 |
status | 字符串 | 可选 | 指定返回句子的审核状态,默认值为 publish,包括:publish,已发布的数据;pending,待审核的数据;rejected,已拒绝的数据。 |
2.3 API返回
返回数据的格式为 JSON,以下是返回数据的示例:
{
"id":5524, //本条一言的id
"hitokoto":"其实人生,就是不停的和自己玩捉迷藏的过程。", //一言正文
"type":"a", //一言的类型
"from":"wifi-qaq", //一言的出处
"creator":"wifi", //添加者
"created_at":"1472006394" //添加时间
}
返回数据包含的属性如下:
属性名 | 类型 | 说明 |
---|---|---|
id | 整型 | 本条一言的id |
hitokoto | 字符串 | 一言正文 |
type | 字符串 | 一言的类型 |
from | 字符串 | 一言的出处 |
creator | 字符串 | 添加者 |
created_at | 字符串 | 添加时间 |
3. PHP连接百度文心一言API
3.1 环境要求
PHP版本:5.5或以上版本。如果你的PHP版本小于5.5,则无法使用完整的curl函数库。在低版本PHP上使用curl库的功能是不完整的。
curl函数库,默认已安装在PHP5.3及以上的版本。如果您使用的是低于PHP5.3的版本,则需要启用curl函数库扩展。您可以在php.ini文件中设置extention=curl.so启用。
3.2 示例代码
接下来,我将展示如何使用PHP连接百度文心一言API获取随机的一句话。
<?php
//获取随机语句的API接口
$url = "https://v1.hitokoto.cn/";
//设置请求参数(这里我只是设置了请求编码方式,如果你需要其他参数可以自行设置)
$params = [
'encode' => 'json'
];
//使用curl函数执行GET请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
//输出结果
if($data) {
echo "一言ID:" . $data['id'] . "<br>";
echo "一言正文:" . $data['hitokoto'] . "<br>";
echo "一言类型:" . $data['type'] . "<br>";
echo "一言出处:" . $data['from'] . "<br>";
echo "添加者:" . $data['creator'] . "<br>";
echo "添加时间:" . date('Y-m-d H:i:s', $data['created_at']) . "<br>";
} else {
echo "获取数据失败!";
}
?>
通过上面的示例代码,我们就可以连接百度文心一言API获取随机的一句话了。
4. 总结
在这篇文章中,我介绍了如何使用PHP连接百度文心一言API获取随机的一句话。通过这个小API,我们可以在我们自己的项目中使用一些好玩、有趣的句子,让我们的项目看上去更加生动、有趣。