
シェア:
ケリー・J・アンドリュースはネクスモの開発者支持者であり、5歳で初めてBASICを使い、30年以上コンピュータをいじってきた。
1997年に初めてウェブページを作り、初めてJavaScriptを試してみて初めて、彼は真の天職を見つけた。ケリーは今、JavaScript、テスト可能なコード、そして迅速なデリバリーのために戦っている。
カラオケを歌ったり、マジックを披露したり、カブスやファイティング・アイリッシュを応援したり。
Google Cloudの翻訳APIを使用したSMSメッセージの翻訳
所要時間:6 分
テキストメッセージは私たちの日常生活の一部となっている。バンキング、アラート、マーケティング、サポートなど、さまざまな場面で統合されています。Vonageも同様です。
Extendチームの一員として、テキストメッセージを翻訳APIと統合することは非常に理にかなっています。受信したテキストメッセージを翻訳することで、コミュニケーションの障壁をなくし、より多くの読者を獲得することができます。
概要
この投稿では インバウンドVonage SMSウェブフックを作成し、メッセージを英語に翻訳する方法を紹介します。 Google クラウド翻訳 API.
始めるには、以下のアイテムをセットアップする必要がある:
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
プロジェクトの作成
この例のセットアップは最小限で、2、3のパッケージがあれば始められる。
@google-cloud/translate- これは公式のクラウド翻訳SDKですexpress- ウェブフックを提供するウェブフレームワークdotenv- 環境変数をロードするパッケージbody-parser- 受信したウェブフック・オブジェクトを処理するExpress用ミドルウェア
プロジェクトを初期化し、上記の要件をインストールするには npmまたは yarn.
インストールしたら index.jsそして .envファイルを作成する。
まず .envファイルを開き、以下をコピー&ペーストする:
GOOGLE_APPLICATION_CREDENTIALS=./google_creds.json
TARGET_LANGUAGE='en'次に index.jsファイルを開き、その中に次のコードを書く:
'use strict';
require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const { Translate } = require('@google-cloud/translate');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
const server = app.listen(3000, () => {
console.log(`Express server listening on port ${server.address().port} in ${app.settings.env} mode`);
});
これで、サンプルを実行するためのサーバーがセットアップされる。
ングロックのインストール
Webhookは、SMSメッセージを受信したときにVonageサービスがアプリケーションに到達できるように、一般に公開する必要があります。公開可能なサーバーにコードをプッシュするか、あるいは ngrokを使うこともできます。
インストール方法については ngrok詳しくは この記事.すべての準備ができたら、次のコマンドを使って ngrok を起動し、トンネルを作成します。
住所をメモしておいてください。 ngrok後のステップで必要になるので。
Google Cloud Translation APIを設定する
初期項目を設定したら、Google Cloud Translation APIをアカウントに追加します。以下のリンクをクリックしてください。 このリンクをクリックして Translation API を有効にします。プロジェクトを選択し Enableボタンをクリックして、そのプロジェクトで API を有効にします。
Enable Google Cloud Translation API
を作成することをお勧めします。 service userを作成することを推奨します。 ここをクリックをクリックして + Create Service Account.
Add New Service Account
アカウントに好きな名前を付けて Createボタンを押してください。アカウントが作成されたら、ロールを追加して Cloud Translation API Userロールを追加し Continue.
Add Cloud Translation API User Role
このユーザーのキーを作成する必要があります。先に進んで + Create Keyボタンをクリックし JSONを選択し、createをクリックします。これで JSONファイルをあなたのマシンにダウンロードします。それが完了したら Doneをクリックして作成プロセスを完了します。
Create Service Account Key
Create Service Account Key - Select Type
クレデンシャルファイルをプロジェクトフォルダにコピーします:
Google Cloud Translation APIがセットアップされ、使用できるようになりました。
次に、電話番号を設定します。
VonageインバウンドSMSメッセージの設定
この例では、受信メッセージを受け取るためにVonageの電話番号が必要です。このためには Vonage CLIを使うことでできる。
バーチャル電話番号の購入
最初のステップは、番号を購入することです。 ISO 3166 アルファ2の国番号をご自由にお使いください)。
アプリケーションで実際に使用するルートは設定されていないが、その名前を /message.電話番号はこのルートにリンクさせる必要があるので、受信メッセージはどこに行けばいいかがわかります。ホスト名を ngrokホスト名を取得し、ここで使用します:
これで、受信SMSメッセージがルーティングされる場所としてWebhookがセットアップされました。
申し込み完了
このチュートリアルで残っているのは、受信データを処理するExpressルートを作成することと、実際に翻訳を実行する小さな関数をいくつか作成することだけです。
Webhookを構築する
まず、ウェブフックのコードを作成する必要があります。VonageにはデフォルトのSMSの動作を設定する機能が組み込まれている。 設定パネルでで、デフォルトの HTTPメソッドを変更できる。私のは POST-JSON.可能であればこの設定を使用することをお勧めしますが、この設定を変更できない場合に備えて、この例で使用しているコードは3つのオプションすべてを処理します。
Default Vonage SMS HTTP Method
ファイルを開き index.jsファイルを開き、一番下に以下のコードを貼り付ける:
// Reading the inbound SMS messages
const handleRoute = (req, res) => {
let params = req.body;
if (req.method === "GET") {
params = req.query
}
if (!params.to || !params.msisdn) {
res.status(400).send({'error': 'This is not a valid inbound SMS message!'});
} else {
translateText(params);
res.status(200).end();
}
};
上記のスニペットは、ルーティングに渡すメソッドだ。受信メッセージが POSTを使っている場合は req.bodyを使います。 req.queryを使います。 GETオプションを使います。受信ペイロードが適切にセットアップされている限り、オブジェクトは翻訳を表示するために translateTextメソッドに送られます。
これで、ルートと適切な HTTPメソッドを追加できます。
app.route('/message')
.get(handleRoute)
.post(handleRoute)
.all((req, res) => res.status(405).send());
上記のコードは GETと POSTメソッドを作成します。他のメソッドが使われた場合は 405 - Method Not Allowedレスポンスが返されます。
ウェブフックの準備は完了し、最後のピースは実際の翻訳である。
翻訳方法
前のステップでは translateText.このステップでは、そのメソッドを作成する。
この @google-cloud/translateパッケージの使い方は実に簡単だ。まず Translateクラスをインスタンス化します。 translateメソッドができる。これは translateTextメソッド内で呼び出され textフィールドを使用します。入力は target入力は に翻訳するための任意の2文字のコードです。.
const translationApi = new Translate();
function translateText(params) {
const target = process.env.TARGET_LANGUAGE || 'en';
translationApi.translate(params.text, target)
.then(results => {
console.log(`Original Text: ${params.text}`);
console.log(`Translation: ${results[0]}`);
})
.catch(err => {
console.log('error', err);
});
}
サーバーを起動し、先ほど購入した番号にテキストメッセージを送信して、機能を試すことができる。
node index.js
# Text "Hola" to your phone number
# expected response
Original Text: Hola
Translation: HelloGoogle Cloud Translation APIは、入力された言語を検出し、翻訳を素早く処理する素晴らしい仕事をしてくれます。楽しんで試してみてください。
総括
上記の例は翻訳のほんの入門編ですが、翻訳を始めるには良いきっかけになるはずです。ここから、インバウンドメッセージを翻訳し、アウトバウンドメッセージを正しい言語に翻訳することができます。
このチュートリアルの完成版については、以下を参照してください。 https://github.com/nexmo-community/sms-translate-google-js.
Extendプロジェクトの詳細については、以下をご覧ください。 https://developer.vonage.com/en/integrationをご覧ください。
