首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用可编写脚本的应用程序向Shelly cloud发送请求

使用可编写脚本的应用程序向Shelly cloud发送请求
EN

Stack Overflow用户
提问于 2021-09-13 08:22:48
回答 1查看 177关注 0票数 0

将Shelly2.5与我的快门连接并连接后,尝试将其与Siri连接。我决定使用可编写脚本的应用程序来实现这一点,然后将Siri命令连接到它,这样它就可以运行了。

当前有一个问题,从脚本应用程序发送请求,因为代码写在下面,当我试图从Postman中触发它时,它工作了。

代码语言:javascript
复制
// # open shutter

let url = "https://domain.shelly.cloud";
let suffix ="/device/relay/roller/control/";
let auth_key = "AAAABBBBCCCDDDEEEEFFFFFF____EXAMPLE_TOKEN___AAAABBBBCCCDDDEEEEFFFFFF";

let channel = 0;
let turn = "on";

let direction = "open";
let id = "C45bbe75f1bd";


let body = { 
  "auth_key":auth_key, 
  "id": id, 
  "direction":direction
  };
// console.log(body);
let req = new Request(url + suffix); 
// console.log(url+suffix);
req.method = "POST";
req.body = body;

req.headers = { "Content-Type":"application/x-www-form-urlencoded" };


// req.body = JSON.stringify(body)
let json = await req.loadJSON()
console.log(json);

目前的回应是:

代码语言:javascript
复制
2021-09-13 11:20:46: {"isok":false,"errors":{"invalid_header":"Unauthorized! Wrong authorization header provided!","invalid_token":"The login information is invalid! Please login again!"}}

请注意,我更改了shelly cloud的真实令牌和真实子域。如果有人知道如何解决这个问题,那就太棒了,谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-10-22 00:28:30

看起来像是Shelly expect表单编码的主体。尝尝这个

代码语言:javascript
复制
let form  = Object.keys(body).map( k => `${k}=${encodeURIComponent(body[k])}`).join('&')

req.body = form
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69159451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档