https://d226lax1qjow5r.cloudfront.net/blog/blogposts/extending-nexmo-google-cloud-translation-api-dr/E_EN_Translate-SMS_1200x600.png

Übersetzen von SMS-Nachrichten mit der Google Cloud Translation API

Zuletzt aktualisiert am May 13, 2021

Lesedauer: 10 Minuten

Textnachrichten sind zu einem Teil unseres täglichen Lebens geworden. Wir integrieren sie in verschiedene Aspekte wie Bankgeschäfte, Warnungen, Marketing und Support. Sie ist einfach zu implementieren, und Vonage ist da nicht anders.

Als Teil des Extend-Teams macht die Integration von Textnachrichten mit Übersetzungs-APIs durchaus Sinn. Die Übersetzung eingehender Textnachrichten kann helfen, Kommunikationsbarrieren zu überwinden und ein breiteres Publikum zu erreichen.

Übersicht

In diesem Beitrag zeige ich Ihnen, wie Sie eine eingehende Vonage SMS Webhook erstellen und die Nachricht mit Hilfe der Google Cloud Translation API.

Um mit der Arbeit beginnen zu können, müssen Sie die folgenden Dinge einrichten:

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

Ihr Projekt erstellen

Das Setup für dieses Beispiel ist minimal, und Sie brauchen nur ein paar Pakete, um loszulegen.

  • @google-cloud/translate - Dies ist das offizielle Cloud Translation SDK

  • express - Web-Framework zur Bereitstellung des Webhooks

  • dotenv - ein Paket zum Laden von Umgebungsvariablen

  • body-parser - Middleware für Express zur Verarbeitung des eingehenden Webhook-Objekts

Initialisieren Sie das Projekt und installieren Sie dann die oben genannten Anforderungen mit npm oder yarn.

npm init && npm install @google-cloud/translate express dotenv body-parser # or yarn init && yarn add @google-cloud/translate express dotenv body-parser

Nach der Installation erstellen Sie ein index.js und .env Datei.

touch index.js .env

Öffnen Sie die .env und kopieren Sie den folgenden Text und fügen Sie ihn ein:

GOOGLE_APPLICATION_CREDENTIALS=./google_creds.json
TARGET_LANGUAGE='en'

Als nächstes öffnen Sie die Datei index.js Datei und fügen Sie den folgenden Code ein:

'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`);
});

Damit wird der Server für die Ausführung des Beispiels eingerichtet.

Installation von Ngrok

Webhooks müssen öffentlich verfügbar sein, damit der Vonage-Dienst die Anwendung bei eingehenden SMS-Nachrichten erreichen kann. Sie können Ihren Code auf einen öffentlich zugänglichen Server schieben, oder Sie können mit ngrok verwenden, damit der öffentliche Datenverkehr Ihre lokale Anwendung erreichen kann.

Sie können mehr über die Installation erfahren ngrok mit diesem Beitrag. Nachdem Sie alles vorbereitet haben, können Sie ngrok mit dem folgenden Befehl starten, um Ihren Tunnel zu erstellen.

ngrok http 3000

Notieren Sie sich die ngrok Adresse, da Sie diese in einem späteren Schritt benötigen werden.

Einrichten der Google Cloud Translation API

Sobald Sie die ersten Elemente eingerichtet haben, können Sie nun Google Cloud Translation API zu Ihrem Account hinzufügen. Folgen Sie diesen Link um die Übersetzungs-API zu aktivieren. Wählen Sie ein Projekt aus und klicken Sie dann auf die Schaltfläche Enable Schaltfläche, um die API für dieses Projekt zu aktivieren.

Enable Google Cloud Translation APIEnable Google Cloud Translation API

Es wird empfohlen, eine service user zu erstellen, das Zugriff auf die Übersetzungs-API hat. Klicken Sie hier und klicken Sie + Create Service Account.

Add New Service AccountAdd New Service Account

Geben Sie dem Account einen beliebigen Namen, und drücken Sie die Create Taste. Nachdem der Account erstellt wurde, fügen Sie die Cloud Translation API User Rolle hinzu, und klicken Sie auf Continue.

Add Cloud Translation API User RoleAdd Cloud Translation API User Role

Sie müssen Schlüssel für diesen Benutzer erstellen. Klicken Sie dazu auf die Schaltfläche + Create Key Schaltfläche und wählen Sie dann JSON und klicken Sie auf Erstellen. Dadurch wird eine Datei JSON Datei auf Ihren Computer herunter, die Sie für die Nutzung des Accounts benötigen. Wenn dies abgeschlossen ist, klicken Sie auf Done um den Erstellungsprozess abzuschließen.

Create Service Account KeyCreate Service Account Key

Create Service Account Key - Select TypeCreate Service Account Key - Select Type

Kopieren Sie die Datei mit den Anmeldeinformationen in Ihren Projektordner:

cp /path/to/file/project-name-id.json ./google_creds.json

Die Google Cloud Translation API ist nun eingerichtet und einsatzbereit.

Als Nächstes können wir die Rufnummer einrichten.

Vonage eingehende SMS-Nachrichten einrichten

In diesem Beispiel wird eine Telefonnummer von Vonage benötigt, um eingehende Nachrichten zu empfangen. Dies können wir mit Hilfe der Vonage CLI direkt von einem Terminal aus.

Virtuelle Rufnummer kaufen

Der erste Schritt besteht darin, eine Nummer zu erwerben (Sie können auch eine andere ISO 3166 Alpha-2 Ländercode nach Bedarf).

vonage numbers:search US Country Number Type Cost Features ─────── ─────────── ────────── ──── ───────── US 12017621343 mobile-lvn 0.90 VOICE,SMS US 12017782770 mobile-lvn 0.90 VOICE,SMS US 12018011956 mobile-lvn 0.90 VOICE,SMS US 12018099074 mobile-lvn 0.90 VOICE,SMS US 12018099756 mobile-lvn 0.90 VOICE,SMS vonage numbers:buy 12017621343 US

Obwohl die eigentliche Route, die in der Anwendung verwendet werden soll, noch nicht eingerichtet ist, werden Sie ihr einen Namen geben /message. Die Telefonnummer muss mit dieser Route verknüpft werden, damit eingehende Nachrichten wissen, wohin sie gehen sollen. Holen Sie den ngrok Hostnamen aus der vorherigen Einrichtung und verwenden Sie ihn hier:

vonage number:update 12017621343 US --url=https://my-ngrok-hostname/message

Jetzt haben wir den Webhook als Ort für die Weiterleitung eingehender SMS-Nachrichten eingerichtet.

Beenden Sie die Anwendung

Alles, was in diesem Tutorial noch zu tun ist, ist die Erstellung der Express-Route für die eingehenden Daten und ein paar kleine Funktionen für die eigentliche Übersetzung.

Erstellen Sie den Webhook

Zunächst müssen wir den Webhook-Code erstellen. Vonage verfügt über eine integrierte Funktion zur Einstellung des Standardverhaltens bei SMS. Im Einstellungsbereich können Sie die Standard HTTP Methode ändern. Meine ist eingestellt auf POST-JSON. Ich würde empfehlen, diese Einstellung zu verwenden, wenn möglich, aber der Code in diesem Beispiel wird alle drei Optionen behandeln, falls Sie nicht in der Lage sind, diese Einstellung zu ändern.

Default Vonage SMS HTTP MethodDefault Vonage SMS HTTP Method

Öffnen Sie die index.js Datei, und fügen Sie unten den folgenden Code ein:

// 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();
  }

};

Der obige Ausschnitt ist die Methode, die wir an die Routen übergeben werden. Wenn die eingehende Nachricht die Methode POST verwendet, wird sie req.bodyverwendet, und es wird req.query für die GET Option. Solange die eingehende Nutzlast richtig eingestellt ist, wird das Objekt an die translateText Methode weitergeleitet, um die Übersetzung anzuzeigen.

Jetzt können Sie die Route und die entsprechenden HTTP Methoden zur Anwendung hinzufügen.

app.route('/message')
  .get(handleRoute)
  .post(handleRoute)
  .all((req, res) => res.status(405).send());

Der obige Code erzeugt die GET und POST Methoden, um entweder die eingehende SMS-Webhook-Nachricht zu verarbeiten. Wenn eine andere Methode verwendet wird, wird eine 405 - Method Not Allowed Antwort zurückgegeben werden.

Der Webhook ist einsatzbereit und das letzte Stück sind die eigentlichen Übersetzungen.

Methode der Übersetzung

Im vorherigen Schritt rufen wir translateText. In diesem Schritt wird diese Methode erstellt.

Die Verwendung des @google-cloud/translate Pakets ist wirklich einfach. Wir instanziieren zunächst die Translate Klasse, die uns die translate Methode. Diese wird innerhalb der translateText Methode aufgerufen und verwendet das text Feld aus dem Objekt der eingehenden SMS-Nachricht. Die target Eingabe ist ein beliebiger zweistelliger Code für die Sprache, in die übersetzt werden soll.

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);
         });
}

Jetzt können Sie die Funktionalität testen, indem Sie den Server starten und eine Textnachricht an die zuvor erworbene Nummer senden.

node index.js
# Text "Hola" to your phone number

# expected response
Original Text: Hola
Translation: Hello

Die Google Cloud Translation API leistet hervorragende Arbeit bei der Erkennung der eingehenden Sprache und der schnellen Verarbeitung der Übersetzung. Viel Spaß und probieren Sie es aus.

Rekapitulation

Das obige Beispiel ist nur eine kleine Einführung in die Übersetzung, aber es sollte ein guter Anfang sein, damit Sie loslegen können. Von hier aus können Sie die eingehende Nachricht übersetzen und dann auch die ausgehende Nachricht in die richtige Sprache übersetzen (ein zukünftiger Blog-Beitrag, sicher).

Eine vollständige Version dieses Tutorials finden Sie unter https://github.com/nexmo-community/sms-translate-google-js.

Wenn Sie mehr über unsere Extend-Projekte erfahren möchten, besuchen Sie https://developer.vonage.com/en/integration um mehr zu erfahren.

Teilen Sie:

https://a.storyblok.com/f/270183/384x384/444c073b5e/kellyjandrews.png
Kelly J AndrewsEhemaliges Teammitglied

Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.

Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.

Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.