家庭事务

我有一个5岁的女儿,如果她帮助我,我会给她“零用钱”。
但,无现金时代, 有很多次我的钱包里没有硬币,我完全忘记了我会给你的承诺。 . .这就是不时发生的事情。

这样一来,爸爸的信任就没有了! ! ! ! !

你想做的事

要求总结如下!

我想要一个应用程序,它可以让我记下“承诺给你零用钱”,无论你的钱包里是否有硬币。

对于教育,我想要一部给人以零花钱的感觉的作品

我女儿(5 岁,没有智能手机)为自己节省了多少零用钱?我希望能够检查

基于以上,配置图

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

我想要一个应用程序,它可以让我记下“承诺给你零用钱”,无论你的钱包里是否有硬币。

用 LINE Bot 做笔记是最简单的,我认为它很容易部署给妈妈们。对于那些可以输入零用钱的人,最好用他们的LINE用户ID来限制他们。

对于教育,我想要一个给人零花钱的感觉的作品

我很担心。我想设计一个丰富的LINEBot菜单和回复消息中的“Charlene”等音效。

我的女儿(5 岁,没有智能手机)为自己节省了多少零用钱?我希望能够检查

我没有智能手机,所以我必须从根本上考虑这种方法。
幸运的是我们有亚马逊亚历克斯我女儿每天都使用语音输入来播放音乐,所以我希望能够通过 Amazon Alexa 检查我的津贴总额。

执行

LINE Bot 版本

准备鹦鹉返回 LINEBot

参考这篇文章,我准备了爸爸和鹦鹉归来的LINEBot。
5分钟搞定LINEBot

丰富的菜单设置

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう
我从“Irasutoya”借了一张钱的形象,并将其设置在丰富的菜单中。
当您点击货币图像时,会以“chage:10”格式输入文本

实施 Google App 脚本

由于基础部分是用parrot return LINEBot实现的,所以只介绍不同之处。

反映输入的函数,例如电子表格中的 charge: 10,创建一条消息并返回它
function insertCharge(txt){
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');
  const charge = txt.replace('charge:','');
  const values = sheet.getDataRange().getValues();
  const numRow = values.length
  // timestamp
  var today = new Date
  sheet.getRange(numRow + 1, 1).setValue(Utilities.formatDate(today,'JST','yyyy/MM/dd'));
  // charge
  sheet.getRange(numRow + 1, 2).setValue(charge);

  return {'type': 'text', 'text': charge + "円を追加したよ!"};
}
一个返回带有声音效果 Money 的音频消息的函数是 Challeen
function moneyAudio() {
  return {
				"type": "audio",
				"originalContentUrl": "https://cog1t0.github.io/public_img/money.mp3",
				"duration": 1000 // 音声ファイルの長さ(ミリ秒)
			}
}

音效实验室我从先生那里借来的。
我参考GithubPages上的图片托管文章发布和访问音效数据

在doPost函数中,我们在创建消息时,设置用户消息包含charge的条件:

if ( user_message.match(/charge:/)) {
  messages.push( insertCharge(user_message) )
  messages.push( moneyAudio() )
}

API

仅创建一个工作表以汇总并显示电子表格的“sheet1”中输入的内容
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

SSSAPI此工作表将作为 API 发布,并带有一个名为的服务。
这是一项很棒的服务,只需粘贴电子表格的 URL 即可将其转换为 API!

使用直观,但需要以下设置
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

在第一行的情况下,如果选择不使其成为数组,则使用 API 会更容易

即使有来自 LINEBot 的输入,自动更新为 OFF 时也不会反映。如果开启自动更新,几分钟后就会更新

亚马逊 Alexa 版

创建账户

alexa 开发者页面转到并注册一个帐户

观看教程视频以感受它

有很多独特的词,很难直观地使用。
教程视频不看会迷茫,所以建议一定程度的开始看。
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう
* 我第一次触摸 Alexa 控制台的图像

在控制台中开发

选择 Alexa 技能开发

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

选择控制台

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

选择创建技能

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

创造一个新技能

技能名称:随便你
要添加到技能的模型:自定义
如何托管后端资源:Alexa 托管 (Node.js)
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

Alexa 托管的技能根据解释,“如果您超过 AWS 免费使用套餐,您需要自己的 AWS 账户来预置额外资源。”

要添加到技能的模板:从头开始创建

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

选择继续使用模板并等待
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

技能生成器启动
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

编辑代码编辑器

编辑代码编辑器
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

这次我们实现的是一个简单的技能,当我们调用该技能时,它只会告诉我们电子表格的余额。
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

只有两个文件需要编辑。
・package.json
・index.js

包.json
{
  "name": "hello-world",
  "version": "1.2.0",
  "description": "alexa utility for quickly building skills",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Amazon Alexa",
  "license": "Apache License",
  "dependencies": {
    "ask-sdk-core": "^2.7.0",
    "ask-sdk-model": "^1.19.0",
    "aws-sdk": "^2.326.0",
    "axios": "^0.27.2" 
  }
}

唯一的变化是一行,添加了一个新的 axios。适当的版本会不时更改,因此请查看。

index.js
/* *
 * This sample demonstrates handling intents from an Alexa skill using the Alexa Skills Kit SDK (v2).
 * Please visit https://alexa.design/cookbook for additional examples on implementing slots, dialog management,
 * session persistence, api calls, and more.
 * */
const Alexa = require('ask-sdk-core');
const axios = require("axios"); // <= 新規追加

// スプレッドシートのAPIにアクセスして、お小遣いの残高を取得する関数
const getBalanceData = async () => {
    try {
        const response = await axios.get(
          "https://api.sssapi.app/xxxxxxxxxxxxxxxx" // <= SSSAPIで作ったAPIのURL
        );
        return response.data;
    } catch (error) {
        console.error(error)
    }
}

const LaunchRequestHandler = {
    canHandle(handlerInput) {
        return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
    },
    async handle(handlerInput) {
        const data = await getBalanceData(); // <= 残高を取得
        const speakOutput = `えみちゃんのおこづかいは${data.balance}円だよ!`; // <= アレクサにしゃべってもらう内容を組み立て

        return handlerInput.responseBuilder
            .speak(speakOutput)
            .getResponse();
    }
};
/// 以降いろんな処理が書いてありますが、使いません

各种描述都是默认写的,但这次我们只使用调用技能时最先响应的函数(LaunchRequestHandler),其余部分省略。

编辑后部署

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう
需要一段时间

测试一下

在标题菜单中选择“测试”,由于禁用了测试,因此选择“开发”以启用测试。调用技能名称时测试读取余额。
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

设置公共设置

在标题菜单中选择“测试”并将内容更改为适当地我会填写的。
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

隐私和合规设置

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

我 5 岁的女儿使用它,所以我对“此技能是否适用于 13 岁以下的儿童?”回答“是”,我选择了“否”。 (好像不能制作,除非是亚马逊认证的人)

设置公共范围

キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

老实说,我并不想公开,但没有它我无法使用技能,所以我公开了。 (请让我知道是否有办法在我的设备上使用该技能而不透露它?‍♂️)

申请

从标题菜单中的“认证”申请。
经过大约24小时的等待,我被批准了。

试过了

Alexa技能,如果我离开验证我就能做到?皮c。山雀河这 m/1Q Chixvzae W

— 桑原六也 / 桑原六也 (@r19_tech)2022 年 8 月 10 日

女儿的反应

有趣的音频消息正如所料,我喜欢一遍又一遍地播放“Charlene!”的声音!
キャッシュレス時代の「子どものおこづかい」ってどうしたらいいんだろう

女儿能自己开启Alexa的技能,期待今后的积累。

老婆的反应

目前,我对这个问题没有任何特别的认识,但能够用 LINE Bot 来做这件事似乎很有趣
・不要让吉吉巴巴使用它,因为它似乎会无休止地夏琳。
暂时无法提现,请通过LINEBot提现
・如果您的零用钱是 20 日元或 30 日元,您可以通过按两次 10 日元来代替。
・我想让“夏琳”自动播放(LINE Bot 的规格它是什么? . .我告诉他,他同意了。)
・你用这笔津贴做了什么?的备忘录功能我想

=> 我笑说我老婆没有什么特别的问题,但是她说如果家里人用的话她会试试的,所以使用起来好像不是特别高的门槛!

未来的任务

・我可以毫无问题地写下“承诺给你零用钱”,但是当你兑现余额时,你需要直接操作电子表格中的数据,所以我想让LINEBot变得简单。
・备忘功能,拥有它似乎很方便!
・虽然很不情愿让季季巴巴使用它,但首先,如果我不在的话,我就不会有季季巴巴在为它买单的感觉。

概括

・第一次制作了Alexa技能,令人惊讶的易于实施的技能很高兴知道
随着智能音箱的使用,我觉得解决家庭问题的可能性一下子增加了。所以,我想挑战可以做更复杂事情的技能!


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308623193.html

相关文章:

  • 2021-11-04
  • 2021-10-07
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2021-10-12
  • 2022-12-23
  • 2021-10-06
猜你喜欢
  • 2021-08-14
  • 2021-06-15
  • 2021-11-20
  • 2021-10-09
  • 2022-01-27
  • 2021-06-22
  • 2021-11-15
相关资源
相似解决方案