影刀RPA API接口对接详解:GET POST Headers认证完全实战
影刀RPA API接口对接详解GET POST Headers认证完全实战作者林焱什么叫 API 接口你在用影刀抓网页数据时其实有时候有更好的路直接调用网站的 API 接口拿到结构化的 JSON 数据不用解析 HTML不用处理元素定位也不会因为网页改版而失效。APIApplication 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?categoryelectronicspage1 ) → 返回值: 响应结果响应结果包含响应结果.状态码— 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-urlencodedHTTP POST请求( URL: https://api.example.com/login, 请求头: {Content-Type: application/x-www-form-urlencoded}, 请求体: usernamelinyanpasswordyour_password )认证方式大全API 接口通常有认证要求常见的几种方式1API Key最常见很多公共 API 用这种方式在请求头里带上 KeyHTTP GET请求( URL: https://api.openweathermap.org/data/2.5/weather?qBeijing, 请求头: { X-API-Key: your_api_key_here } )或者在 URL 里带URL: https://api.openweather.com/weather?qBeijingappidyour_api_key方式2Bearer TokenOAuth 2.0大多数企业级 API 和 SaaS 平台用这个HTTP GET请求( URL: https://api.github.com/user/repos, 请求头: { Authorization: Bearer ghp_your_token_here, Accept: application/vnd.github.v3json } )方式3Basic 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_page100, 请求头: {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?keyyour_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: 打印日志(推送失败 响应.响应体)踩坑记录坑1SSL 证书验证失败TEMU店群矩阵自动化运营核价报活动访问内部系统时服务器用的是自签名证书影刀会报SSL证书验证失败。解决方法在 HTTP 请求设置里关闭 SSL 验证仅限内部可信系统外部接口不要关。坑2被限速Rate Limit连续请求太快API 返回 429 Too Many Requests。解决方法在循环里加等待(500)到等待(2000)处理 429 响应时读取响应头的Retry-After字段等待指定时间再重试坑3Token 过期没有处理流程运行中途 Token 过期API 返回 401 Unauthorized流程直接报错停止。解决方法If 响应.状态码 401: // Token 过期重新登录获取 访问Token 重新登录() // 用新 Token 重试这次请求 响应 HTTP GET请求(URL, 带新Token的请求头)坑4JSON 序列化中文问题用影刀的 JSON 格式化指令序列化中文内容有时中文变成 Unicode 转义\u4e2d\u6587API 服务器接收后显示乱码。解决方法用 Python 脚本做 JSON 序列化importjson datajson.loads({data})resultjson.dumps(data,ensure_asciiFalse)print(result)小结API 接口调用在影刀里的核心步骤确认认证方式API Key / Bearer Token / Basic Auth构造请求头和请求体发送请求检查状态码解析 JSON 响应体提取需要的字段处理分页如果有的话处理常见错误401/429/500掌握这个之后基本上只要有 API 文档就能对接任何系统。作者林焱飞行社 RPA 实践记录