LoginSignup
0
0

Google App Script でVoice API (TTS) を使う

Posted at

はじめに

お客様から「メール不可の受信相手にテキスト内容を電話(音声)で伝えたい。または相手の営業時間内にテキスト内容を電話(音声)で伝えたい。」要件を実現するため、GASからVonage APIの使い方についてお問合せ頂いた際の簡単なサンプルコードをご参考までに共有させて頂きます。

概要

Vonageの公開ドキュメントではGASサポートについて触れていませんが、REST APIにて Vonage NCCOをパラメータにしてコールすれば問題なく動作します。ここではVoice APIを使ったTTS機能の事例をご説明します。

実現手順

  • Communications APIs LoginよりAPIアカウントを作成
  • アカウントよりCustomer Dashboardにログインし、左側ナビゲーションメニューからApplicationをクリックし、Voice Applicationを作成
  • ApplicationのPublic Keyを生成し、private.keyファイルをローカルに保存する
  • Vonage Voice API 認証用 JWTを生成
  • GASコードを作成

以下、詳細コマンド、またはGAS コードサンプルです:

  1. 上記、作成したVoice Application IDを指定し、JWTを生成スクリプトを定義し、実行します。
#!/bin/bash
PATH_TO_PRIVATE_KEY=$(pwd)/private.key
NEXMO_APPLICATION_ID=40941d20-ac86-404d-9501-b0996cf8616b
export JWT=$(nexmo jwt:generate $PATH_TO_PRIVATE_KEY application_id=$NEXMO_APPLICATION_ID)
echo $JWT
  1. 上記JWT、To/From番号と、GASのPayload変数を定義し、コードを実行します。
function callVonageAPI() {
  var url = 'https://api.nexmo.com/v1/calls';
  var TO_NUMBER = 'to_number'; // Replace with the actual phone number
  var VONAGE_NUMBER = 'from_number'; // Replace with the actual Vonage number
  var JWT = 'your_jwt'; // Replace with your actual JWT
  
  var data = {
    "to": [{
      "type": "phone",
      "number": TO_NUMBER
    }],
    "from": {
      "type": "phone",
      "number": VONAGE_NUMBER
    },
    "ncco": [{
      "action": "talk",
      "text": "もしもし、お休みの連絡です。熱がありますのでお休みします。よろしくお願いします。",
      "language": "ja-JP",
      "style": 2
    }]
  };
  
  var options = {
    'method' : 'post',
    'headers': {
      'Authorization': 'Bearer ' + JWT,
      'Content-Type': 'application/json'
    },
    'payload' : JSON.stringify(data)
  };

  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());

参考記事

0
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
0
0