这几天很多小伙伴问我群里的机器人随机句子是怎么做的,这里告诉大家是调用了一言api接口,下面教大家怎么搭建自己的一言api。

准备工具:

  • 主机/服务器
  • 域名(使用国内主机/服务器的域名需备案)
  • 一言调用文件

前两样大家可以去阿里云或者腾讯云或者其他平台购买,本文主要讲述第3点

  • 制作教程

一言api接口调用文件有两个,下面是制作步骤

新建一个api.php文件,然后将以下代码写进此文件中保存

<?php
    $counter = intval(file_get_contents("counter.dat"));  
     $_SESSION['#'] = true;  
     $counter++;  
     $fp = fopen("counter.dat","w");  
     fwrite($fp, $counter);  
     fclose($fp); 
 ?>

<?php
//获取句子文件的绝对路径
$path = dirname(__FILE__);
$file = file($path."/api.txt");

//随机读取一行
$arr  = mt_rand( 0, count( $file ) - 1 );
$content  = trim($file[$arr]);

//编码判断,用于输出相应的响应头部编码
if (isset($_GET['charset']) && !empty($_GET['charset'])) {
    $charset = $_GET['charset'];
    if (strcasecmp($charset,"gbk") == 0 ) {
        $content = mb_convert_encoding($content,'gbk', 'utf-8');
    }
} else {
    $charset = 'utf-8';
}

//格式化判断,输出js或纯文本
if ($_GET['encode'] === 'js') {
    echo "function api(){document.write('" . $content ."');}";
}else if($_GET['encode'] === 'json'){
    header('Content-type:text/json');
    $content = array('text'=>$content);
    echo json_encode($content, JSON_UNESCAPED_UNICODE);
}else {
    echo $content;
}

再新建一个api.txt文本,将你想展示的随机一言的句子写进该文本中保存,句子一行一个即可。

  • 搭建教程

上述两个文件准备好之后,将这两个文件上传到你的主机/服务器文件夹中,并将域名解析到主机/服务器即可访问

访问地址为http://你的域名/api.php
然后将这个api地址填写到机器人配置中即可实现机器人调用随机一言

Last modification:March 13, 2021
如果你想请我喝一盒安慕希