Webhook接口说明
概述
Webhook 是一种 Web 应用程序的通信机制,它允许不同的应用程序或系统之间进行实时的数据交互和事件通知。
Webhook 本质上是一个 HTTP 回调,是一个可以由应用程序或平台向其他应用程序或服务发送 HTTP 请求的 URL。当特定事件在源应用程序或平台中发生时,它会自动触发并向预先配置好的 Webhook URL 发送一个 HTTP 请求,将相关的数据以JSON等格式作为请求体发送过去,接收方应用程序或服务可以通过解析这个请求来获取数据并执行相应的操作。
Webhook 基于 HTTP 协议,利用了 HTTP 请求中的 POST、GET 等方法来实现数据的传输。源应用程序在事件发生时构造一个包含事件数据的 HTTP 请求,然后发送到目标 Webhook URL。接收方服务监听这个 URL,一旦收到请求,就会根据请求中的数据进行相应的处理。
接口说明
如果配置了webhook地址,则每当Msray采集到结果后,程序都会主动向用户设置的webhook地址发送POOST请求,格式为JSON, 参数如下:
请求地址
: 自定义配置的webhook地址,如:http://www.xxx.com/receive.php
请求方式
: POST
请求头类型
: Content-Type:application/json
请求内容格式
: JSON数组
返回内容
: success (注意,返回内容,请输出字符串"success",表示已经成功接收处理数据!否则会多次推送,降低效率和消耗更多资源。
)
请求内容
: 如下
[
{
"id": 1,
"engine": "baidu",
"page": 1,
"url": "http://www.msray.cn",
"title": "标题1",
"description": "描述1",
"keyword": "msray软件",
"name": "网站名称1",
"sort": 1,
"ads": 2,
"createdAt": "2025-03-01 12:00:00"
},
{
"id": 2,
"engine": "baidu",
"page": 1,
"url": "http://www.msray.cn",
"title": "标题2",
"description": "描述2",
"keyword": "msray软件",
"name": "网站名称2",
"sort": 2,
"ads": 2,
"createdAt": "2025-03-01 12:00:00"
},
]
字段 | 类型 | 描述 |
---|---|---|
id | int | 结果编号 |
engine | string | 所属引擎的编码 |
page | int | 结果所在页码 |
url | string | 结果对应的网址链接 |
title | string | 结果标题 |
description | string | 结果描述 |
keyword | string | 当前搜索的关键词 |
name | string | 搜索结果结果页面显示的网站名称,部分网站有 |
sort | int | 排名 |
ads | int | 是否是竞价排名广告 1=是 2=不是 |
createdAt | string | 抓取时间 |
PHP接口代码实例
<?php
/* msray's php library */
header("Content-type: text/html; charset=utf-8");
// 获取推送的内容
$content = file_get_contents("php://input");
// 把推送来的JSON内容,转换为数组形式。
$dataObj = json_decode(file_get_contents('php://input'), true);
// 解析出推送的url数据,并写入到当前目录的logs.txt文件中。一行一个结果(这里的逻辑是可自定义的,比如也可以存到自己的mysql数据库)
// 如果不想存储为txt,也可以写入到Mysql,es,redis等等任何外部存储
$filename = 'logs-' . date('YmdH',time()).'.txt';
if ($dataObj['url'] != '') {
$result = file_put_contents($filename, $dataObj['url'].PHP_EOL, FILE_APPEND );
}
echo 'success';