影刀RPA API接口对接详解:GET POST Headers认证完全实战
影刀RPA API接口对接详解:GET POST Headers认证完全实战
作者:林焱
什么叫 API 接口
你在用影刀抓网页数据时,其实有时候有更好的路:直接调用网站的 API 接口,拿到结构化的 JSON 数据,不用解析 HTML,不用处理元素定位,也不会因为网页改版而失效。
API(Application Programming Interface)就是一个服务提供给外部调用的标准接口。比如:
- 天气服务提供 API,你传城市名,它返回天气数据
- 企业微信提供 API,你传消息内容,它帮你发给群组
- 你的公司内部系统,也可能提供 API 给 RPA 流程调用
影刀的 HTTP 请求指令
影刀在"网络请求"分类下提供以下指令:
HTTP GET请求— 获取数据(查询类)HTTP POST请求— 提交数据(提交类)HTTP PUT请求— 更新数据HTTP DELETE请求— 删除数据HTTP请求(通用)— 可以指定任意 Method
基础操作:发一个 GET 请求
最简单的例子

HTTP GET请求(
URL: "https://api.example.com/products?category=electronics&page=1"
)
→ 返回值: 响应结果
响应结果 包含:
响应结果.状态码— 200 表示成功响应结果.响应体— 返回的 JSON 字符串响应结果.响应头— 响应头信息
解析 JSON 响应
拼多多店群自动化报活动上架!
If 响应结果.状态码 == 200:
数据 = JSON解析(响应结果.响应体)
商品列表 = 数据.products
For 商品 in 商品列表:
打印日志(商品.name + " - " + 商品.price)
Else:
打印日志("请求失败,状态码:" + 响应结果.状态码)

POST 请求:提交 JSON 数据
提交 JSON 格式请求体
HTTP POST请求(
URL: "https://api.example.com/orders",
请求头: {
"Content-Type": "application/json",
"Accept": "application/json"
},
请求体: JSON格式化({
"product_id": "P001",
"quantity": 2,
"customer_id": "C12345"
})
)
→ 返回值: 响应结果
提交表单格式(application/x-www-form-urlencoded)
HTTP POST请求(
URL: "https://api.example.com/login",
请求头: {"Content-Type": "application/x-www-form-urlencoded"},
请求体: "username=linyan&password=your_password"
)
认证方式大全

API 接口通常有认证要求,常见的几种:
方式1:API Key(最常见)
很多公共 API 用这种方式,在请求头里带上 Key:
HTTP GET请求(
URL: "https://api.openweathermap.org/data/2.5/weather?q=Beijing",
请求头: {
"X-API-Key": "your_api_key_here"
}
)
或者在 URL 里带:
URL: "https://api.openweather.com/weather?q=Beijing&appid=your_api_key"
方式2:Bearer Token(OAuth 2.0)

大多数企业级 API 和 SaaS 平台用这个:
HTTP GET请求(
URL: "https://api.github.com/user/repos",
请求头: {
"Authorization": "Bearer ghp_your_token_here",
"Accept": "application/vnd.github.v3+json"
}
)
方式3:Basic Auth(用户名+密码)
// 先把 "用户名:密码" 做 Base64 编码
凭证 = Base64编码("linyan:password123")
HTTP GET请求(
URL: "https://api.example.com/data",
请求头: {
"Authorization": "Basic " + 凭证
}
)
方式4:先登录获取 Token,再用 Token 请求
很多内部系统是这种双步认证:
// 第1步:登录获取 Token
登录响应 = HTTP POST请求(
URL: "https://api.internal.com/auth/login",
请求头: {"Content-Type": "application/json"},
请求体: JSON格式化({
"username": "linyan",
"password": "密码"
})
)
登录数据 = JSON解析(登录响应.响应体)
访问Token = 登录数据.access_token

Token过期时间 = 登录数据.expires_in
// 第2步:用 Token 请求数据
数据响应 = HTTP GET请求(
URL: "https://api.internal.com/reports/today",
请求头: {
"Authorization": "Bearer " + 访问Token
}
)
分页处理:批量拉取所有数据
很多 API 有分页,一次返回 20 或 100 条,需要循环请求:
当前页 = 1
全部数据 = []
有更多数据 = True
While 有更多数据:
响应 = HTTP GET请求(
URL: "https://api.example.com/products?page=" + 当前页 + "&per_page=100",
请求头: {"Authorization": "Bearer " + Token}
)
If 响应.状态码 != 200:
打印日志("请求失败:页码 " + 当前页)
Break
数据 = JSON解析(响应.响应体)
列表合并(全部数据, 数据.items)
// 判断是否还有下一页
If 数据.has_next == false OR 列表长度(数据.items) == 0:
有更多数据 = False
Else:
当前页 = 当前页 + 1
等待(500) // 避免请求太快被限速
打印日志("共获取 " + 列表长度(全部数据) + " 条数据")
实战:对接企业微信机器人 API
场景
用影刀调用企业微信群机器人 API,自动推送每日数据报告。

// 企业微信机器人 Webhook URL(在群机器人设置里获取)
webhook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your_key"
// 构造消息内容
消息内容 = {
"msgtype": "markdown",
"markdown": {
"content": "### 📊 每日数据报告\n" +
"> 日期:" + 今日日期 + "\n" +
"> 总销售额:**¥" + 今日销售额 + "**\n" +
"> 订单数:**" + 今日订单数 + "**\n" +
"> 环比:" + 环比变化
}
}
// 发送 POST 请求
响应 = HTTP POST请求(
URL: webhook_url,
请求头: {"Content-Type": "application/json"},
请求体: JSON格式化(消息内容)
)
If JSON解析(响应.响应体).errcode == 0:
打印日志("推送成功")
Else:
打印日志("推送失败:" + 响应.响应体)
踩坑记录
坑1:SSL 证书验证失败
TEMU店群矩阵自动化运营核价报活动
访问内部系统时,服务器用的是自签名证书,影刀会报"SSL证书验证失败"。
解决方法:在 HTTP 请求设置里关闭 SSL 验证(仅限内部可信系统,外部接口不要关)。

坑2:被限速(Rate Limit)
连续请求太快,API 返回 429 Too Many Requests。
解决方法:
- 在循环里加
等待(500)到等待(2000) - 处理 429 响应时,读取响应头的
Retry-After字段,等待指定时间再重试
坑3:Token 过期没有处理
流程运行中途 Token 过期,API 返回 401 Unauthorized,流程直接报错停止。
解决方法:
If 响应.状态码 == 401:
// Token 过期,重新登录获取
访问Token = 重新登录()
// 用新 Token 重试这次请求
响应 = HTTP GET请求(URL, 带新Token的请求头)
坑4:JSON 序列化中文问题
用影刀的 JSON 格式化指令序列化中文内容,有时中文变成 Unicode 转义(\u4e2d\u6587),API 服务器接收后显示乱码。
解决方法:用 Python 脚本做 JSON 序列化:
import json
data = json.loads("{data}")
result = json.dumps(data, ensure_ascii=False)
print(result)
小结
API 接口调用在影刀里的核心步骤:
- 确认认证方式(API Key / Bearer Token / Basic Auth)
- 构造请求头和请求体
- 发送请求,检查状态码
- 解析 JSON 响应体,提取需要的字段
- 处理分页(如果有的话)
- 处理常见错误(401/429/500)
掌握这个之后,基本上只要有 API 文档,就能对接任何系统。
作者:林焱|飞行社 RPA 实践记录
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)