LINE Notify×Alexa『飲み会行きたいです🙇』の許可をAIに任せて心理的負担を減らしたい方--実行コードあり--
前回まで‥
苦戦していた。
今回、実行できました。以下のコードをAlexaにコーディングすれば実行可能です。ですが、上の記事でやりたかった理想とは程遠く以下を見ていただければその理由がわかります。
理想の「好きな人からメッセージを受け取り最高の朝」は現状難しそうです。。土下座して好きな人に頼み込んでみてください😂
その理由は・・機械感が否めない(笑)
おすすめな場面:
毎日の飲み会に参加したい夫は、奥さんにその願いを伝えることに躊躇しています。彼は奥さんに頭が上がらず、自分の欲求を奥さんに伝えることに罪悪感や不安を感じて言い出せないでいます。奥さんとの関係を大切にし、彼女の気持ちを尊重したいと願っていますが、同時に自分の趣味や友人との交流も大切にしたいと感じています。
そんな方へ、「飲みに行きたいです」をAlexaを通してLINEに通知してもらうんです。その結果、確実にあなたへの心理的負担が減ります。もし怒られたとしても「AlexaがLINE通知したからAlexaが怒られているんだと!」気持ちを切り替えることも可能です。
1.LINE Notifyの設定
※最新の情報を取ってきてください(2024年4月現在)
マイページ→トークンを発行
⭐発行したトークンは絶対にメモしておくこと(今後発行されない)
(Alexa内のコードで使用します)
Line(携帯)の画面に戻る→LINE Notifyをそのグループ招待
+奥さんのラインもグループ招待 ※Alexa用(3)になる
2.Alexaのスキル設定方法
Alexa developer console を検索
スキルの作成(説明文を読んで進めてください)
■ コーディング
以下のコードを貼ってください(編集する箇所あり)
※pythonで書いています。一部json
import logging
import requests
import json
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
def send_to_line_notify(message, token):
line_notify_api = 'https://notify-api.line.me/api/notify'
headers = {'Authorization': f'Bearer {token}'}
payload = {'message': message}
try:
response = requests.post(line_notify_api, headers=headers, data=payload)
response.raise_for_status()
return response
except requests.RequestException as e:
logger.error(f"Failed to send notification: {e}")
return None
def lambda_handler(event, context):
logger.info('Received event: {}'.format(json.dumps(event)))
# LINE Notifyのアクセストークンを設定(ここ変更)
line_notify_token = 'あなたのLINE Notifyのアクセストークン'
try:
# Alexaスキルの起動リクエストかどうかをチェック
if event['request']['type'] == "LaunchRequest":
# このメッセージがラインに飛んできる(ここ変更)
message = '大変恐縮ですが、今夜飲み会に行ってきます。10時には帰ります。ケーキ買ってきます。'
response = send_to_line_notify(message, line_notify_token)
if response and response.status_code == 200:
# 通知が成功したら成功レスポンスを返す
return {
'version': '1.0',
'response': {
'outputSpeech': {
'type': 'PlainText',
# Alexaが返答する言葉(ここも変更できる)
'text': '通知しました'
},
'shouldEndSession': True
}
}
else:
# 通知が失敗したら失敗レスポンスを返す
return {
'version': '1.0',
'response': {
'outputSpeech': {
'type': 'PlainText',
# Alexaが返答する言葉(ここも変更できる)
'text': '通知に失敗しました'
},
'shouldEndSession': True
}
}
else:
# 起動リクエスト以外のリクエストには対応しない
return {
'version': '1.0',
'response': {
'outputSpeech': {
'type': 'PlainText',
# Alexaが返答する言葉(ここも変更できる)
'text': 'このスキルは起動リクエストにのみ対応しています'
},
'shouldEndSession': True
}
}
except Exception as e:
logger.error(f"An error occurred: {e}")
# エラーが発生した場合はエラーレスポンスを返す
return {
'version': '1.0',
'response': {
'outputSpeech': {
'type': 'PlainText',
# Alexaが返答する言葉(ここも変更できる)
'text': 'エラーが発生しました'
},
'shouldEndSession': True
}
}
「デプロイ」を必ず行ってください。コードを保存できます。
■ 呼び出し名の変更
Alexaに呼びかける時の言葉です。※注意がたくさんあるのでよく読んで設定してください。簡単な言葉だとあなたの作成したスキルだとAlexaが反応しなく、実行できないです。多くの改良が必要です。
「デプロイ」を最終的に行ってください。
3.Alexaに呼びかけてみて
「呼び出し名の変更」で設定した文言をAlexaに言ってみてください。
Alexaから「通知しました」(上のコードを変更しなければ)と同時にLINEにメッセージが飛んできます。
注意点:失敗する時があります
Alexaも完璧ではありません。例えば、アレクサが聞き間違えることも。そんな時は、発音を少し変えて再挑戦、もしくはコードの文言やスキル呼び出しの言葉も再修正。失敗を恐れずに、試行錯誤を楽しんでください。
4.最後に:
人生において、奥さんは一番と言っていいほど大切ですが、同時に自分の趣味や友人との交流も大切でしょう。私は、少しでもあなたの心理的負担を減らすことに貢献できたら幸いです。
まだまだこのコードには不便なことがたくさんあるでしょう。ですが、怖がらずにこれからも挑戦していきます。応援よろしくお願いします🥰
※2024年4月現在の情報です。
↓使用したAlexa
この記事が気に入ったらサポートをしてみませんか?