見出し画像

坂道グループの中からもうすぐ誕生日を迎えるメンバーを教えてくれるLINE Clovaスキルをつくった

さかたん』というLINE Clovaスキルを公開しました(URLが無い)。

さかたんは、乃木坂46、欅坂46、日向坂46のメンバーの中で、次に誕生日を迎えるメンバーを教えてくれます。

使い方

😲「ねぇClova、さかたんを起動して」
🤖「グループ名か、坂道と言ってください」
😲「乃木坂」
🤖「8月20日に、乃木坂の秋元真夏さんが26歳、乃木坂の白石麻衣さんが27歳を迎えます。」

グループ名は「坂」を省略することが可能です。グループを絞らない場合は「全部」とか「坂道」と言ってください。該当するメンバーが複数いる場合は↑のように全員喋ります。

あとは、当日なら

🤖「本日8月10日に、乃木坂の齋藤飛鳥さんが21歳になりました。」

と喋ります。

つくった理由

・特定のメンバーの誕生日ならググればすぐ知れるけど、つぎ誰が何歳になるかはすぐにはわからないなーと思ったから
・Clovaスキル(と乃木坂46が昔コラボしてたので)つくりたかった

技術について

言語はSwiftを使いました。LINEがSwift用のSDKを用意してくれてるのと、ぼくが一番書き慣れている言語なので。Swift以外にNode.jsとかPythonとかKotlinとかgoもありますよ👶

あとは動かすためにDockerとHerokuを使いました。SDKに組み込まれてるので、楽チン!Herokuのssl対応は別途必要です。

Swiftは型名や変数名に日本語が使えます。

enum 坂道: String {
    case 乃木坂 = "のぎざか"
    case 欅坂 = "けやきざか"
    case 日向坂 = "ひなたざか"
}

struct Member {
    let name: String
    let kana: String
    let birthday: Date
    let group: 坂道
}

今回一番時間がかかったところは、メンバーのデータを作るところですかね。欅坂46のサイトはコピペできないようになってて大変でした🙄

// MARK: - 乃木坂46
let nogizakaMembers: [Member] = [
    // MARK: 1期生
    Member("秋元 真夏", "あきもと まなつ", "1993年8月20日", .乃木坂),
    Member("生田 絵梨花", "いくた えりか", "1997年1月22日", .乃木坂),
    Member("井上 小百合", "いのうえ さゆり", "1994年12月14日", .乃木坂),
    Member("衛藤 美彩", "えとう みさ", "1993年1月4日", .乃木坂),
    Member("齋藤 飛鳥", "さいとう あすか", "1998年8月10日", .乃木坂),
    ...
]

ほかには、ローカルとheroku上とでタイムゾーンが違うことによるDateFormatterの扱いとかは少し悩みました。

そしてClovaの発話のための処理と、汎用的な坂道グループのデータを分離したので、今後何かしらに応用できるかもしれないし、できないかもしれません。

Clovaスキルの審査について

LINE Clovaスキルストアに自作スキルを公開するには、LINEによる審査に合格する必要があります。さかたんは1回落ちました。

指摘箇所は6箇所で、パッと見結構多いな・・・と思ったんですが、指摘理由が明確で、且つ修正例も載せてくれたりと、どう直せば良いか分かりやすくて助かりました。

審査のスピード感ですが、さかたんの場合、初回の審査結果は申請してから38時間後、2回目は40時間後に返ってきました。つまりそれぞれ2営業日内で審査していただきました。

Clova Developer Centerでスキルごとに統計も見れます。今回の審査員はClova DeskとClova Friends miniの2台でテストしてた、というのがログ見ると分かったりします。

今後の懸念

メンバーが卒業するたびに泣きながらメンテする必要があり、メンタルがもつか心配です。

この記事が気に入ったらサポートをしてみませんか?