飞书有自己的open api官方文档:飞书开放平台
但是比较麻烦,还需要创建应用:发送的header需要access token,这个access token需要有个应用才能获取到
目前使用的是比较方便的方法:飞书pc端找工作台,应用里面找到飞书捷径:
然后:(可以参考官网:使用飞书捷径)
?
上面这步操作和阿里云物联网平台的物模型差不多,就是筛选json中的有效数据
上面这步前要新建一个表格,表格里面第一行要有标题,以列为单位,存放json中的数据,类似下图:
?然后就可以向webhook 地址进行发数据了,不需要验证,这是一个公开的url。
操作步骤:
在线测试工具(用的是http的post):在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具 —SO JSON在线工具
关于webhook?:webhook 究竟是什么呢? - 知乎? ?,或者自行百度
关于esp32方面,示例如下(不需要安装第三方库):
#include <Arduino.h>
#include <Wire.h>
#include <WiFi.h>
#include <HttpClient.h>
const char *ssid = "xxxxx";//WIFI
const char *password = "xxxxx";//WIFI密码
String url = "https://www.feishu.cn/flow/api/trigger-webhook/xxxxxxxxxx7";//网址
WiFiClient client; //声明一个客户端对象,用于与服务器进行连接
#define LED_BUILTIN 27
void setup(void)
{
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
Serial.println("Hello World!");
WiFi.begin(ssid, password);//连接到网络
while (WiFi.status() != WL_CONNECTED) {//等待网络连接成功
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());//打印模块IP
}
void loop(void)
{
int key = digitalRead(KEY);
HTTPClient http;
http.begin(url);
http.addHeader("Content-Type", "application/json");
String postMessage="{\"data\": {\"deviceID\": 0,\"time\": \"2021.9.13-15:25\",\"temp\": 0,\"hump\": 8}}";
int httpCode = http.POST(postMessage);
Serial.printf("httpCode: %d ",httpCode);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
digitalWrite(LED_BUILTIN, HIGH);
}
python示例:
import requests
if __name__ == '__main__':
print('main creat')
url = "https://www.feishu.cn/flow/api/trigger-webhook/xxxxxxxx"
data = '{"data": {"deviceID": 0,"time": "2021.9.13-15:25","temp": 0,"hump": 19}}'
headers = {'content-type': "application/json"}
res = requests.post(url=url, data=data, headers=headers)
print(res.text)
pass
|