网站LOGO
博客 | 棋の小站
页面加载中
12月6日
达尔达尼亚瀑布,博洛尼亚,意大利 ...
网站LOGO 博客 | 棋の小站
记录学习,心得,状态,生活。
菜单
  • 热评
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    分享博主正在用的API
    点击复制本页地址
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。
    按住ctrl可打开默认菜单

    分享博主正在用的API

    · 原创 ·
    搭建网站 · 闲谈实用教程
    共 9564 字 · 约 4 分钟 · 387

    无聊翻遍了博客的所有文章,发现有关网站搭建的文章有些陈旧了,但是还是有些能用。今天突然想炫耀下自己的API。我的API都被我的网站所采用,但不知道是否有其他人使用,比如我博客、主页的必应壁纸和描述,metingAPI,使用的都是自己搭建的。这些API有的网上能搜到源码,但有的则是我自己写的,以满足我的某些特殊需求。有想体验的请前往https://api.qi1.zone

    主页的必应壁纸主页的必应壁纸博客的必应壁纸以及描述博客的必应壁纸以及描述

    为什么要搭建自己的API呢,其一是他人的服务质量不一定能保证,比如请求速度,他人的API服务器可能与我的服务器不在同一区域,甚至在国外,请求时间就比较长,再就是可能不能访问。其二就是自己搭建API,并且全部使用自己的API,可以较好地保证网站的一体性,域名较统一。第三就是网络的API具有一定局限性,有的时候他人的API可能会获取调用者的网站域名、IP信息,从而被攻击,或者由于同时请求数较多,导致请求较为卡顿,从而导致自己的网站访问速度有影响。第四就是自己搭建的API可以高度定制,调用者也是开发者,可以根据自己的需求,实时改变API,并且调用下也没那么多约束,有的时候连文档,甚至返回格式都不必做严格的要求,只要满足自己使用即可。

    下方分享一下自己的API以及源码。API大部分都是用PHP编写的,因此可以很方便地拷贝到自己的网站源码中。API编写不易,调用时请留个言,谢谢。本人只做符合自己需求的API,并非公益API,因此不接受定制,但API源码开源,各位可直接复制。

    生成每日必应壁纸

    我的主页、博客中请求的必应壁纸都来自于这个API:获取必应每日图片

    此处内容,需回复之后可见

    这段代码是一个简单的PHP脚本,用于获取必应每日壁纸。它通过访问必应每日壁纸的API获取壁纸的URL,然后将该壁纸作为JPEG格式的图像直接输出到浏览器。在输出之前,代码设置了CORS头以允许跨域访问。如果获取壁纸URL失败,则输出错误信息。

    获取当日必应壁纸描述

    我的博客首页中有一个轮播图,下方的标题就是当日的必应壁纸描述,每天零点随着必应壁纸更新,这段描述也会跟着更新。建议在调用时将这段文字内容缓存在本地,因为API每次都是直接访问必应壁纸官方的API,没有采取缓存的。文档地址:https://api.qi1.zone/doc/bing_desc

    API源码:

    此处内容,需回复之后可见

    正如上方所说,壁纸每次都是直接从云端获取数据,没有做缓存,因此建议请求API时做好缓存,以减少请求时长。

    缓存代码:

    此处内容,需回复之后可见

    在调用时使用下方的代码调用即可:

    php 代码:
    <?php echo bing() ?>

    检测文本中是否存在死链

    这个API没有自动调用,因为实在太浪费时间了,且我的服务器Nginx防火墙设置了POST请求的最大字节数,因此请求时请对数据做分段处理。地址:https://api.qi1.zone/doc/test_dead_url

    这里给出一个可用的调用示例,使用Python的requests库:

    python 代码:
    import requests
    
    # 示例文本
    example_text = """
    # 示例文本
    
    这是一个包含不同类型链接的示例文本。
    
    1. [Markdown链接](https://www.example.com)
    2. [另一个Markdown链接](https://www.deadlink.com)
    3. 这是一个[HTML链接](https://www.example.com)
    4. 这是另一个[死链](https://www.deadlink2.com)
    5. 这是一个普通的https链接: https://www.example.com
    6. 这是一个死链: https://www.deadlink3.com
    
    请使用API测试这个文本,并查看死链的输出结果。
    """
    
    # 使用requests库发送POST请求
    url = "https://api.qi1.zone/api/test_dead_url"  # 替换成实际的API URL
    response = requests.post(url, data={"text": example_text})
    
    # 输出API响应
    print(response.text)

    返回结果:

    txt 代码:
    所有可能的超链接:
    https://www.example.com
    https://www.deadlink.com
    https://www.example.com
    https://www.deadlink2.com
    https://www.example.com)
    https://www.deadlink.com)
    https://www.example.com)
    https://www.deadlink
    https://www.example.com
    https://www.deadlink
    
    死链列表:
    https://www.deadlink.com
    https://www.deadlink2.com
    https://www.example.com)
    https://www.deadlink.com)
    https://www.example.com)
    https://www.deadlink
    https://www.deadlink

    由于API寻找超链接时使用的是正则表达式,包含普通的以HTTPS开头的字符串、Markdown形式和a标签形式,因此返回的可能有误。

    源码:

    此处内容,需回复之后可见

    各位可以根据自己的需求更改。

    其他API

    这里分享其他的个人API,源码都比较简单,可以直接复制,按需选择。

    获取QQ头像

    php 代码:
    <?php
    if(isset($_REQUEST['qq'])) {
        $qq = $_REQUEST['qq'];
        $url = "https://q1.qlogo.cn/g?b=qq&nk={$qq}&s=640"; // QQ头像的API地址
        header("Content-type: image/jpeg"); // 设置HTTP响应头,指定返回的是图片
        readfile($url); // 直接输出图片内容
    }
    ?>

    生成随机字符串

    细心的博友可能发现了,本站的文章URL都包含一个12位的随机字符串,这个随机字符串就是使用我自己的API随机生成的,每次请求后填入。

    php 代码:
    <?php
    
    // 生成指定长度的随机字符串
    function generateRandomString($length) {
        $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randomString = '';
    
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }
    
        return $randomString;
    }
    
    // 获取请求参数
    $length = isset($_GET['length']) ? intval($_GET['length']) : 12;
    
    // 生成随机字符串
    $randomString = generateRandomString($length);
    
    // 返回JSON格式的结果
    $response = array(
        'random_string' => $randomString
    );
    
    header('Content-Type: application/json');
    echo json_encode($response);

    跳转到QQ名片

    访问此URL后网页会请求打开QQ,并跳转到那个人的名片。

    php 代码:
    <?php
    header('Content-Type:application/json; charset=utf-8');
    $qq = '';
    $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
    //url 参数 ?qq=123456789
    if ($_SERVER["REQUEST_METHOD"] == "GET") {
        $qq = $_GET["qq"];
    } elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
        $qq = $_POST["qq"];
    }
    // $qq = isset($_GET['qq']) ? $_GET['qq'] : "";
    if(empty($qq)){
      echo json_encode(array('code'=>201,'msg'=>'QQ不能为空'),480);
    }elseif(!preg_match("/^[1-9][0-9]{4,10}$/",$qq)){
      echo json_encode(array('code'=>202,'msg'=>'QQ格式不正确'),480);
    }elseif(strpos($agent,'windows nt')){
      $loca = "tencent://ContactInfo/?subcmd=ViewInfo&puin=0&uin={$qq}";
    }elseif(strpos($agent,'iphone')){
      $loca = "mqq://im/chat?chat_type=wpa&uin={$qq}&version=1&src_type=web";
    }elseif(strpos($agent,'android')){
      $loca = "mqq://card/show_pslcard?src_type=internal&version=1&uin={$qq}&card_type=person&source=sharecard";
    }
    if(empty($loca)==false){
    header("Location:$loca");
    exit;    
    }
    ?>
    声明:本文由 (博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    现在已有

    8

    条评论
    发一条!
    1. 头像
      空空裤兜
      • 等级:Lv.2
      • 角色:访客
      • 在线:本月

      主页和内页加载好快啊,对于typecho优化实在摸不着头脑

      · · · 甘肃-陇南
      1. 头像

        没咋优化,就是给静态资源套了个CDN。

        · · · 河北-秦皇岛
    2. 头像
      龙鲲
      • 等级:Lv.1
      • 角色:访客
      • 在线:本月

      跳转到QQ名片在圈内还有一个名字,叫QQ强制聊天
      主要在对方隐藏搜索的情况下,使用该方法查看对方的名片

      · · · 安徽-安庆
      1. 头像
        龙鲲

        哈哈我的API里有一个

        · · · 河北-秦皇岛
    3. 头像
      obaby
      • 等级:Lv.2
      • 角色:综合 · 好友
      • 在线:今日

      功能不少哎~~

      · · · 山东-青岛
      1. 头像
        obaby

        给个人使用足够了,毕竟不是公益的

        · · · 海外
    4. 头像
      TeacherDu
      • 等级:Lv.5
      • 角色:首页 · 好友
      • 在线:本周

      好多实用的API!

      · · · 海外
      1. 头像
        TeacherDu

        哈哈都是给自己用的

        · · · 海外
    博客logo 博客 | 棋の小站 记录学习,心得,状态,生活。
    ICP 冀ICP备2023007665号 ICP 冀公网安备 13030202003453号

    🕛

    本站已运行 221 天 14 小时 23 分

    👁️

    今日访问量:255 昨日访问量:2564

    🌳

    建站:Typecho 主题:MyLife
    博客 | 棋の小站. © 2023 ~ 2023.
    网站logo

    博客 | 棋の小站 记录学习,心得,状态,生活。
     
     
     
     
    壁纸
     
     
     
     

    8

    1

  • 下一篇