Intro
10月の休み、友人と四国に来ました。
2人ともネコが好きくて、飛ぶネコが有名な猫島「佐柳島」に行きたいでした!
しかし、フェリーのスケジュールに間に合わず、
結局は断念でした😭😭😭
ネコを見ると、心が癒される気持ちをわかるので、
どこでも、いつでも可愛いネコが見えるLINE BOTを作るきっかけでした。
(自分は猫派だが、犬派のために、犬も見える機能を加入しました🐕)
実際に動く画面
結果物はこんな感じでした:
今回は日本語と英語を対応できる機能を作りました。
(猫, ネコ, cat, Cat, 犬, イヌ, dog, Dog⇨対応OKです!)
設定した言葉以外を入力しましたら、
'Please enter cat/dog/犬/猫 only!'
の提示が出てきます。
Node-redのフロー
3つのパス
①犬, イヌ, dog, Dog ⇨ 犬の写真
②猫, ネコ, cat, Cat ⇨ 猫の写真
③他 ⇨ 提示
JSONフロー
{
"id": "5ad4580e7b557bfe",
"type": "tab",
"label": "流程10",
"disabled": false,
"info": "",
"env": []
},
{
"id": "095b9e2091e5c928",
"type": "Webhook",
"z": "5ad4580e7b557bfe",
"name": "",
"url": "/webhook",
"x": 120,
"y": 320,
"wires": [
[
"6818bed824609303"
]
]
},
{
"id": "fbdf0d4c616f69b0",
"type": "ReplyMessage",
"z": "5ad4580e7b557bfe",
"name": "",
"replyMessage": "",
"x": 720,
"y": 320,
"wires": []
},
{
"id": "96aacf45ef5dc534",
"type": "http request",
"z": "5ad4580e7b557bfe",
"name": "",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "https://aws.random.cat/meow",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"x": 420,
"y": 320,
"wires": [
[
"62d312497a058ee6"
]
]
},
{
"id": "62d312497a058ee6",
"type": "function",
"z": "5ad4580e7b557bfe",
"name": "",
"func": "msg.payload = 'Cat🐈 for you: ' + msg.payload.file ;\n\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 550,
"y": 320,
"wires": [
[
"fbdf0d4c616f69b0"
]
]
},
{
"id": "6818bed824609303",
"type": "switch",
"z": "5ad4580e7b557bfe",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "Dog",
"vt": "str"
},
{
"t": "eq",
"v": "dog",
"vt": "str"
},
{
"t": "eq",
"v": "犬",
"vt": "str"
},
{
"t": "eq",
"v": "イヌ",
"vt": "str"
},
{
"t": "eq",
"v": "cat",
"vt": "str"
},
{
"t": "eq",
"v": "Cat",
"vt": "str"
},
{
"t": "eq",
"v": "猫",
"vt": "str"
},
{
"t": "eq",
"v": "ネコ",
"vt": "str"
},
{
"t": "else"
}
],
"checkall": "true",
"repair": false,
"outputs": 9,
"x": 250,
"y": 320,
"wires": [
[
"b44bbb6ee673420f"
],
[
"b44bbb6ee673420f"
],
[
"b44bbb6ee673420f"
],
[
"b44bbb6ee673420f"
],
[
"96aacf45ef5dc534"
],
[
"96aacf45ef5dc534"
],
[
"96aacf45ef5dc534"
],
[
"96aacf45ef5dc534"
],
[
"27e1b03ee5ae7c04"
]
]
},
{
"id": "b44bbb6ee673420f",
"type": "http request",
"z": "5ad4580e7b557bfe",
"name": "",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "https://dog.ceo/api/breeds/image/random",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"credentials": {},
"x": 420,
"y": 260,
"wires": [
[
"c310ab9021353a46"
]
]
},
{
"id": "c310ab9021353a46",
"type": "function",
"z": "5ad4580e7b557bfe",
"name": "",
"func": "msg.payload = 'Dog🐕 for you: ' + msg.payload.message ;\n\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 550,
"y": 260,
"wires": [
[
"fbdf0d4c616f69b0"
]
]
},
{
"id": "27e1b03ee5ae7c04",
"type": "function",
"z": "5ad4580e7b557bfe",
"name": "",
"func": "msg.payload = 'Please enter cat/dog/犬/猫 only😀!' ;\n\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 410,
"y": 380,
"wires": [
[
"fbdf0d4c616f69b0"
]
]
}
]
振り返り
最初の発想は、
結果のようなUrlを提供ではなく、
写真自体を送れる想定でした。
しかし、その機能を実現できるfunction最後までできず、
間をとって,今回のLINE BOTを作りました。
やはり写真自体を送れば、
使用者がより早めに癒されるので、
できればfunctionの書き方を改善したいと思います。