LoginSignup
6
0

More than 5 years have passed since last update.

Nowで始める、ナウでヤングなLINEClova生活(Node.js編)

Posted at

こちらの記事で紹介したNowで今回はLINE Clovaのスキルをデプロイしていこうと思います。

デプロイするもの

GitHub - line/clova-extension-sample-dice
サンプルスキルでもあるsample-diceをNowでデプロイしてみましょう

「サイコロを振って」と言うと1〜6でランダムな数を返してくれるスキルです。

基本情報の登録や対話モデルの作成などの情報はこちらを参考に
簡単なExtensionを作成する - Clova Developer Center β

今回は、 上記でいうExtensionサーバーにNowを利用するということになります。

Nowでのデプロイ

Nowのインストール

とりあえず、インストールしてなかったら

or

npmを使用してインストール

npm i -g now

package.jsonにスタートスクリプトを追加

package.jsonにスキルのスタートコマンドを記述します。

package.json
"scripts": {
    "start": "node app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

aliasの設定

nowではデプロイするたびに、[https://アプリ名-ランダムな文字列.now.sh]というURLが与えられます。
LINEClovaのスキルは、WebhookURLを登録する必要があるので、デプロイされるたびにURLが変わると面倒なのでaliasを設定します。
こちらもpackage.jsonに追加してください。

package.json
"now": {
    "alias": "〇〇〇〇"
  },

〇〇〇〇には自分の好きな文字を入れてください
この状態でデプロイしたあと


now alias

コマンドを実行すると、[https://〇〇〇〇.now.sh]というURLでアクセスすることができるようになります。

ということで、ダッシュボードにalias実行後のURLを先に載せちゃってください

Clova_Developer_Center_β.jpg

Extension IDの設定

認証に使用するExtension IDを設定しなければいけません。
sample-diceでは、config.jsで定義されています。

module.exports = {
  SERVER_PORT: process.env.SERVER_PORT || 3000,
  DOMAIN: 'https://clova-common.line-scdn.net/dice',
  ExtensionId: 'com.example.dice'
}

Nowのフリープランではコードが見えてしまうので
Extension IDなど秘密の情報は環境変数ぶち込みます

そのためにはSecretsというものを使います。
https://zeit.co/docs/getting-started/secrets

ターミナル上で

now secret add extension-id YOUR_EXTENTION_ID

YOUR_EXTENTION_IDには自分でダッシュボードで設定した情報を入れてください。

そして、Secretsの情報が、どの環境変数に紐づいているのかをpackage.jsonに記述します。
aliasを追加するときに作ったnowの所に追加してください。

package.json
 "now": {
    "alias": "〇〇〇〇",
    "env": {
      "EXTENTION_ID": "@extension-id"
    }

そして、config.jsのExtension IDの箇所を環境変数から読むようにします。

module.exports = {
  SERVER_PORT: process.env.SERVER_PORT || 3000,
  DOMAIN: 'https://clova-common.line-scdn.net/dice',
  ExtensionId: process.env.EXTENTION_ID
}

これでデプロイの際にExtension IDに環境変数の情報が入ります。

デプロイ

あとはnowをして

now

1__pi_SR5-PI____folo__bash_.jpg

Successが出たら完了!

aliasの反映

このままだと、https://〇〇〇〇.now.shではアクセスできないので、aliasの内容を反映させます。

now alias

このコマンドを実行したら

aliasに設定した内容のURLに紐づいてくれます。
1__pi_SR5-PI____folo__bash_.jpg

こちらも、Success!と出れば成功です。

テスト

チュートリアルの通りに対話モデルなどを作成していると、対話モデルのテストツールを使うと、正しい応答が返ってくると思います。

Clova_Developer_Center_β_-_Interaction_Model_Builder.jpg

以上で完成です!

最後に

実際に自分もNowを使って、Clovaのスキルを2つほど配信していますが、簡単にデプロイできてなかなか便利です。

HEROKUなどと違って、スリープをさせなくする方法もあるので、次回はその記事を書こうかなと思います。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0