『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: lqf1206

[已解决] 【已解决】 node-red token 调用

[复制链接]

20

主题

489

帖子

3220

积分

论坛元老

Rank: 8Rank: 8

积分
3220
金钱
2731
HASS币
8
发表于 2023-4-26 09:22:56 | 显示全部楼层
截图里,画圈的这个节点已经把整个data对象转换成了string,要过滤掉画圈部分,可以用replace函数或substring函数,具体用法百度下。
其实截图里上一个节点,token还是一个对象,使用类似“msg.payload.data.token”的语法来读取更方便,不应该带有你想过滤的这些字符,只是这个路径需要你自己测试下
回复

使用道具 举报

17

主题

255

帖子

1879

积分

金牌会员

Rank: 6Rank: 6

积分
1879
金钱
1624
HASS币
0
 楼主| 发表于 2023-4-26 11:35:16 | 显示全部楼层
本帖最后由 lqf1206 于 2023-4-26 11:38 编辑

Screenshot_2023-04-26-11-36-48-917_com.yfoo.ai.gpt.png

看又看不懂


回复

使用道具 举报

1

主题

41

帖子

484

积分

中级会员

Rank: 3Rank: 3

积分
484
金钱
443
HASS币
0
发表于 2023-6-4 20:15:03 | 显示全部楼层
你是用cpolar获取新生成的二级域名吧,我自个实现了一个,在HA里创建一个辅助元素开关,再在NODE里获取这个开关处于打开状态时,调用bigssh,执行一段SH脚本 脚本内容 里面登陆邮箱和密码自个改,最下面是因为我自个用的是tcp转发HA,所以是tcp://这样的,用正则取的是tcp,你自个按输出内容看着改,最后我是通过bark这个APP的功能发送一个API,将新网址直接发通知到手机,前提是用的是苹果手机,在家庭里当打开这个辅助开关,手机就会自动收到一条最新二级域名的通知,如果是安卓就不太适用了
response1=$(curl -H 'Host: 192.168.1.62:9200' -H 'Accept: application/json, text/plain, */*' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' -H 'Content-Type: application/json;charset=UTF-8' -H 'Origin: http://192.168.1.62:9200' -H 'Referer: http://192.168.1.62:9200/' -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' --data-binary '{"email":"[email protected]","password":"eeeee"}' --compressed 'http://192.168.1.62:9200/api/v1/user/login')



token=$(echo $response1 | jq -r '.data.token')


response=$(curl -H 'Host: 192.168.1.62:9200' -H 'Accept: application/json, text/plain, */*' -H "Authorization: Bearer $token" -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' --compressed 'http://192.168.1.62:9200/api/v1/tunnels')
echo $response
tcp_url=$(echo $response | sed -n 's/.*"public_url": "\(tcp:\/\/[^:]*:[^"]*\)".*/\1/p')
http_url=$(echo $tcp_url | sed 's/tcp:\/\///g')
curl -X POST http://api.day.app/aaaaaa/homehassistant-new-url/$http_url
回复

使用道具 举报

17

主题

255

帖子

1879

积分

金牌会员

Rank: 6Rank: 6

积分
1879
金钱
1624
HASS币
0
 楼主| 发表于 2023-6-4 23:27:19 | 显示全部楼层
本帖最后由 lqf1206 于 2023-6-4 23:52 编辑
idummy 发表于 2023-6-4 20:15
你是用cpolar获取新生成的二级域名吧,我自个实现了一个,在HA里创建一个辅助元素开关,再在NODE里获取这个 ...

获取的token只有两天有效期,目前需要手动填写新的token!现在用邮箱接收的!要是会写函数调用新的token就成功了!!!
QQ截图20230604233249.png
token.png
1685893607837.jpg
回复

使用道具 举报

1

主题

41

帖子

484

积分

中级会员

Rank: 3Rank: 3

积分
484
金钱
443
HASS币
0
发表于 2023-6-5 15:27:55 | 显示全部楼层
加个JSON节点,之后msg.payload.data.token就是的了,,我模拟着写了一个,附上流,最后一个DEBUG的payload.data.items[0].public_url 这个0是第一个数组,你要取哪个就改一下,再就是改登陆邮箱和密码

[
    {
        "id": "c6f6577aa1cff8ee",
        "type": "function",
        "z": "20213920515a31f2",
        "name": "function 34",
        "func": "msg.method = \"POST\";\nmsg.headers = {\n    \"Accept\": \"application/json, text/plain, */*\",\n    \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36\",\n    \"Content-Type\": \"application/json;charset=UTF-8\",\n    \"Origin\": \"http://192.168.1.62:9200\",\n    \"Referer\": \"http://192.168.1.62:9200/\",\n    \"Accept-Language\": \"zh-CN,zh;q=0.9,en;q=0.8\", \"Pragma\": \"no-cache\", \"Cache-Control\": \"no-cache\"\n};\n\nmsg.payload = { \"email\": \"[email protected]\", \"password\": \"aaaaa\" };\n\nmsg.url = \"http://192.168.1.62:9200/api/v1/user/login\";\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 350,
        "y": 3320,
        "wires": [
            [
                "4693f89553552391"
            ]
        ]
    },
    {
        "id": "4693f89553552391",
        "type": "www-request",
        "z": "20213920515a31f2",
        "name": "",
        "method": "use",
        "ret": "txt",
        "url": "",
        "follow-redirects": true,
        "persistent-http": true,
        "tls": "",
        "x": 540,
        "y": 3320,
        "wires": [
            [
                "1caf9586d6d74c5e"
            ]
        ]
    },
    {
        "id": "3013f03f6a8182d0",
        "type": "inject",
        "z": "20213920515a31f2",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 3300,
        "wires": [
            [
                "c6f6577aa1cff8ee"
            ]
        ]
    },
    {
        "id": "1caf9586d6d74c5e",
        "type": "json",
        "z": "20213920515a31f2",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 690,
        "y": 3320,
        "wires": [
            [
                "5dcf57fb31415983"
            ]
        ]
    },
    {
        "id": "5dcf57fb31415983",
        "type": "function",
        "z": "20213920515a31f2",
        "name": "function 35",
        "func": "const token = msg.payload.data.token;\nnode.error(token, msg);\nmsg.method = \"GET\";\nmsg.headers = {\n    \"Accept\": \"application/json, text/plain, */*\",\n    \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36\",\n    \"Content-Type\": \"application/json;charset=UTF-8\",\n    \"Origin\": \"http://192.168.1.62:9200\",\n    \"Referer\": \"http://192.168.1.62:9200/\",\n    \"Authorization\": \"Bearer \" + token,\n    \"Accept-Language\": \"zh-CN,zh;q=0.9,en;q=0.8\",\n    \"Pragma\": \"no-cache\",\n    \"Cache-Control\": \"no-cache\"\n};\n\n\nmsg.url = \"http://192.168.1.62:9200/api/v1/tunnels\";\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 210,
        "y": 3400,
        "wires": [
            [
                "7224167a296d2b83"
            ]
        ]
    },
    {
        "id": "7224167a296d2b83",
        "type": "www-request",
        "z": "20213920515a31f2",
        "name": "",
        "method": "use",
        "ret": "txt",
        "url": "",
        "follow-redirects": true,
        "persistent-http": true,
        "tls": "",
        "x": 410,
        "y": 3400,
        "wires": [
            [
                "8213a6945cdb2928"
            ]
        ]
    },
    {
        "id": "8213a6945cdb2928",
        "type": "json",
        "z": "20213920515a31f2",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 550,
        "y": 3400,
        "wires": [
            [
                "2a1c6de2d30f1434"
            ]
        ]
    },
    {
        "id": "2a1c6de2d30f1434",
        "type": "debug",
        "z": "20213920515a31f2",
        "name": "debug 16",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload.data.items[0].public_url",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 740,
        "y": 3400,
        "wires": []
    }
]

评分

参与人数 1金钱 +8 收起 理由
lqf1206 + 8 高手,这是高手!

查看全部评分

回复

使用道具 举报

17

主题

255

帖子

1879

积分

金牌会员

Rank: 6Rank: 6

积分
1879
金钱
1624
HASS币
0
 楼主| 发表于 2023-6-6 02:40:15 | 显示全部楼层
本帖最后由 lqf1206 于 2023-6-6 02:47 编辑
idummy 发表于 2023-6-5 15:27
加个JSON节点,之后msg.payload.data.token就是的了,,我模拟着写了一个,附上流,最后一个DEBUG的payload. ...

按照流程token调用成功了 谢谢你,图片里的多于信息怎么过滤或者怎么只把链接发到邮箱!
1685893607837.jpg QQ截图20230606024225.png
回复

使用道具 举报

1

主题

41

帖子

484

积分

中级会员

Rank: 3Rank: 3

积分
484
金钱
443
HASS币
0
发表于 2023-6-6 07:48:04 | 显示全部楼层
msg.payload.data.items[0].public_url就只是url了呀,哪有多余信息
回复

使用道具 举报

17

主题

255

帖子

1879

积分

金牌会员

Rank: 6Rank: 6

积分
1879
金钱
1624
HASS币
0
 楼主| 发表于 2023-6-6 11:56:32 | 显示全部楼层
idummy 发表于 2023-6-6 07:48
msg.payload.data.items[0].public_url就只是url了呀,哪有多余信息

dbug输出是链接没问题,要是发送到邮箱怎么处理数据
回复

使用道具 举报

1

主题

41

帖子

484

积分

中级会员

Rank: 3Rank: 3

积分
484
金钱
443
HASS币
0
发表于 2023-6-6 18:12:47 | 显示全部楼层
不知道你用的什么邮箱发送方式,直接把msg.payload.data.items[0].public_url当内容发送嘛
回复

使用道具 举报

17

主题

255

帖子

1879

积分

金牌会员

Rank: 6Rank: 6

积分
1879
金钱
1624
HASS币
0
 楼主| 发表于 2023-6-8 10:45:44 | 显示全部楼层
idummy 发表于 2023-6-6 18:12
不知道你用的什么邮箱发送方式,直接把msg.payload.data.items[0].public_url当内容发送嘛 ...

Screenshot_2023-06-08-10-43-12-276_com.android.email.jpg 怎么吧链接当内容


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-29 09:57 , Processed in 0.335178 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表