Googleドキュメントで作成した文書の翻訳を、手動で行うのは時間がかかります。翻訳結果をチームに共有するために、いちいちコピーしてSlackに貼り付けていませんか。この記事では、Apps Scriptを使って翻訳を自動化し、結果をSlackに投稿する方法を解説します。コード例とともに、設定手順を詳しく説明しますので、初心者の方でも簡単に導入できます。
【要点】Apps ScriptとSlack Webhookで翻訳通知を自動化する
- LanguageApp.translate() 関数: ドキュメント内のテキストを指定言語に翻訳します。Googleの翻訳エンジンをそのまま使えます。
- SlackのIncoming Webhook: 外部サービスからSlackにメッセージを送信するためのエンドポイントです。URLを発行してスクリプトに組み込みます。
- トリガー設定(onEditなど): ドキュメントの編集や時刻指定でスクリプトを自動実行できます。手動実行も可能です。
ADVERTISEMENT
目次
Apps ScriptとSlack連携の仕組み
Apps ScriptはGoogleドキュメントに組み込まれたJavaScriptベースのスクリプト環境です。Googleの各種サービス(翻訳、メール、スプレッドシートなど)を操作できるAPIが用意されています。今回使用するLanguageAppサービスは、テキストを翻訳するための機能を提供します。
Slackへのメッセージ送信には、Incoming Webhookという仕組みを使います。SlackのワークスペースにWebhook用のアプリを作成し、発行されたURLに対してHTTP POSTリクエストを送ると、指定したチャンネルにメッセージが投稿されます。Apps ScriptのUrlFetchApp.fetch()メソッドで簡単に実現できます。
この自動化により、ドキュメントが更新されるたびに翻訳結果がSlackに通知されるようになります。ローカライズの進捗管理や、多言語チームでの情報共有に役立ちます。
翻訳結果をSlackに自動投稿する手順
1. SlackのIncoming Webhookを作成する
- Slack APIページを開く
ブラウザで https://api.slack.com/apps にアクセスし、「Create New App」をクリックします。 - アプリの基本情報を入力
アプリ名(例:「翻訳通知ボット」)と開発用ワークスペースを選択し、「Create App」をクリックします。 - Incoming Webhookを有効にする
左メニューから「Incoming Webhooks」を選び、スイッチをONにします。画面下部の「Add New Webhook to Workspace」をクリックし、投稿先のチャンネルを選択して許可します。 - Webhook URLをコピーする
発行されたURL(https://hooks.slack.com/services/…)をメモします。このURLをスクリプト内で使用します。
2. GoogleドキュメントでApps Scriptを書く
- スクリプトエディタを開く
翻訳したいドキュメントを開き、メニューから「拡張機能」→「Apps Script」を選択します。 - プロジェクト名を設定
左上の「無題のプロジェクト」をクリックし、わかりやすい名前(例:「TranslateToSlack」)に変更します。 - コードを記述する
エディタに以下のコードを貼り付けます。YOUR_WEBHOOK_URL は実際のURLに置き換えてください。
function postTranslationToSlack() {
// SlackのWebhook URL
var webhookUrl = 'YOUR_WEBHOOK_URL';
// ドキュメントの内容を取得
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var text = body.getText();
// 翻訳元言語と対象言語を指定(ここでは日本語→英語)
var translatedText = LanguageApp.translate(text, 'ja', 'en');
// Slackに送信するメッセージを構築
var message = '【翻訳通知】' + doc.getName() + '\n\n元のテキスト:\n' + text + '\n\n翻訳結果(英語):\n' + translatedText;
// SlackにPOST
var payload = {
'text': message
};
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(webhookUrl, options);
}
- スクリプトを保存する
Ctrl+Sを押すか、フロッピーディスクアイコンをクリックして保存します。
3. トリガーを設定して自動化する
- トリガー画面を開く
スクリプトエディタの左メニューから「トリガー」(時計アイコン)をクリックします。 - 新しいトリガーを追加
右下の「トリガーを追加」をクリックします。 - トリガーの条件を設定
「実行する関数」で「postTranslationToSlack」を選択します。「イベントのソース」は「時間主導型」または「ドキュメントの編集時」を選びます。編集時に実行する場合は「ドキュメントのオープン時」でも可能ですが、誤操作を防ぐため時間主導型(例:1時間おき)がおすすめです。 - トリガーを保存
設定が完了したら「保存」をクリックします。初回実行時に権限の承認を求められるので、内容を確認して許可します。
注意点とよくあるトラブル
翻訳が正しく行われない場合
LanguageApp.translate()は、テキストが空の場合や、翻訳元言語の指定が誤っているとエラーになります。事前にgetText()で取得したテキストが空でないことを確認してください。また、翻訳元言語のコード(‘ja’など)はISO 639-1に準拠しています。英語なら’en’、中国語なら’zh’などです。
Slackにメッセージが届かない場合
Webhook URLが正しくないか、権限が不足している可能性があります。Slack Appの設定画面でWebhook URLが正しいか確認しましょう。また、URLが公開されていないか注意してください。Webhookは外部からアクセス可能ですが、URLを知っている人のみが利用できます。誤って共有しないようにしてください。
スクリプト実行時のエラーと対処法
スクリプトがエラーで停止した場合、Apps Scriptの「表示」→「ログ」で詳細を確認できます。よくあるエラーとして、翻訳APIの使用制限(1日あたりの文字数制限)があります。大量のテキストを翻訳する場合は、文字数を減らすか、翻訳対象を絞ってください。また、UrlFetchApp.fetch()がタイムアウトする場合は、送信メッセージのサイズを小さくしましょう。
ADVERTISEMENT
手動翻訳と自動投稿の比較
| 項目 | 手動翻訳・手動投稿 | Apps Scriptによる自動化 |
|---|---|---|
| 操作の手間 | 毎回コピー&ペーストが必要 | 一度設定すれば自動実行 |
| 翻訳品質 | 手動で修正可能だが個人差あり | Google翻訳エンジンで一定品質 |
| 通知の確実性 | 投稿忘れのリスクあり | トリガー通りに確実に通知 |
| カスタマイズ性 | 自由に編集可能 | コード次第で柔軟に拡張可能 |
まとめ
この記事では、GoogleドキュメントのApps ScriptとSlackのIncoming Webhookを連携して、翻訳結果を自動的にSlackに投稿する方法を解説しました。LanguageApp.translate()でテキストを翻訳し、UrlFetchApp.fetch()でSlackにメッセージを送信します。
設定後は、ドキュメントの内容が更新されるたびに翻訳結果がSlackに届くようになります。ローカライズ作業の効率化や、多言語チームでの情報共有に活用できます。さらに応用として、翻訳対象言語を複数に増やしたり、翻訳結果をGoogleスプレッドシートに保存して履歴を残すことも可能です。ぜひ実際の業務で試してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
SPONSORED
Googleドキュメントの人気記事ランキング
- 【Googleドキュメント】音声入力が認識されない時の対処!マイク権限の確認
- 【Googleドキュメント】上付き・下付き文字の入力方法!ショートカットと手動切替
- 【Googleドキュメント】ルビ(ふりがな)を振る方法!代替ツールとアドオンの活用
- 【Googleドキュメント】縦書き表示を実現する方法!代替ツールと回避策
- 【Googleドキュメント】表内の文字を縦中央揃えにする方法!セル内配置
- 【Googleドキュメント】文字間隔(字間)を調整する方法!カーニングの代替手段
- 【Googleドキュメント】インデントを正確に調整する方法!ルーラーとタブストップの使い方
- 【Googleドキュメント】PDFからDocsへ変換する方法!OCR取り込みと精度
- 【Googleドキュメント】Docs→Wordへエクスポート!docx出力での書式維持
- 【Googleドキュメント】図表番号の自動採番!Figure 1, Table 2 の連番
