Office Scriptsで外部API連携!fetchとBearer Tokenで認証付きAPIを使う方法【Excel自動化×HTTP通信入門】
生徒
「Office Scriptsで外部APIと連携したいです。Bearer Tokenって何ですか?」
先生
「Bearer Tokenは、APIを安全に使うための合言葉のようなものです。正しいトークンを送ると、サーバーが処理を許可してくれます。」
生徒
「Excelの自動化とAPI認証って難しそうです…。」
先生
「大丈夫です。fetchによるHTTP通信と認証の仕組みを、初心者向けに順番に説明します。Excel OnlineとOffice Scriptsを使えば実現できますよ。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化機能です。Excelの操作をコードで記述し、ボタン一つで繰り返し処理を実行できます。セルへの値入力、表の作成、データ整理などを自動化できるため、業務効率化やデータ処理の自動化に役立ちます。
Office ScriptsではTypeScriptというプログラミング言語を使います。TypeScriptはJavaScriptをもとにした言語で、Web開発やAPI連携でも広く使われています。そのため、fetchを使ったHTTP通信や外部API連携も可能です。
2. 外部API連携とHTTP通信の基本
APIとは、アプリケーション同士がデータをやり取りするための仕組みです。HTTP通信とは、インターネットを通じてデータを送受信する方法のことです。Office Scriptsではfetch関数を使ってHTTPリクエストを送信します。
リクエストとは「ください」とお願いすること、レスポンスとは「どうぞ」と返ってくる結果です。まずはシンプルなGET通信の例を見てみましょう。
async function main(workbook: ExcelScript.Workbook) {
const response = await fetch("https://api.example.com/data");
const data = await response.json();
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue(data.message);
}
asyncやawaitは「処理が終わるまで待つ」という意味です。API通信では結果が返るまで少し時間がかかるため、この書き方が必要になります。
3. 認証付きAPIとは?Bearer Tokenの仕組み
認証付きAPIとは、誰でも自由に使えないAPIのことです。利用者を確認するために認証情報を送ります。その代表的な方法がBearer Token認証です。
Bearerとは「持っている人」という意味です。つまり、正しいトークンを持っている人だけが利用できます。トークンは長い文字列で、API発行元から発行されます。
HTTP通信では、ヘッダーという情報欄にトークンを設定します。ヘッダーは封筒の宛名のようなものです。
4. Bearer Tokenを使ったfetch実装方法
それでは、Office ScriptsでBearer Token認証を実装してみましょう。Authorizationヘッダーに「Bearer トークン」を指定します。
async function main(workbook: ExcelScript.Workbook) {
const token = "YOUR_ACCESS_TOKEN";
const response = await fetch("https://api.example.com/secure-data", {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
}
});
const result = await response.json();
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue(result.status);
}
headersの中にAuthorizationを追加するのがポイントです。Content-Typeはデータ形式を示します。application/jsonはJSON形式を意味します。
5. POST通信と認証付きデータ送信
GETは取得、POSTは送信です。APIにデータを送る場合はPOSTを使います。例えばExcelのセルの値をAPIへ送信する例です。
async function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const value = sheet.getRange("A1").getValue();
const token = "YOUR_ACCESS_TOKEN";
const response = await fetch("https://api.example.com/post-data", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ message: value })
});
const result = await response.json();
sheet.getRange("B1").setValue(result.reply);
}
JSON.stringifyはデータを文字列に変換する処理です。API通信では文字列形式で送信します。
6. エラー処理と安全なAPI連携
認証付きAPIでは、トークンが間違っているとエラーになります。エラー処理も重要です。tryとcatchを使います。
async function main(workbook: ExcelScript.Workbook) {
try {
const token = "YOUR_ACCESS_TOKEN";
const response = await fetch("https://api.example.com/secure-data", {
headers: {
"Authorization": `Bearer ${token}`
}
});
if (!response.ok) {
throw new Error("認証エラーまたは通信失敗");
}
const data = await response.json();
workbook.getActiveWorksheet().getRange("A1").setValue(data.message);
} catch (error) {
workbook.getActiveWorksheet().getRange("A1").setValue("エラー発生");
}
}
response.okは成功したかどうかを確認する仕組みです。API連携では必ずエラーチェックを入れましょう。
7. セキュリティとトークン管理の注意点
Bearer Tokenは重要な鍵です。第三者に知られると不正利用される可能性があります。実務ではPower Automateなどと組み合わせ、安全な環境で管理します。
Excel自動化や業務効率化のためにAPI連携を使う場合でも、トークンをコードに直接書かない工夫が必要です。セキュリティ対策はとても重要です。
Office Scriptsでの外部API連携、fetchによるHTTP通信、Bearer Token認証を理解すると、クラウドサービス連携やデータ自動取得が可能になります。Excel自動化の可能性は大きく広がります。
まとめ
今回は、Office Scriptsを使った外部API連携の基本から、fetchによるHTTP通信、Bearer Tokenを使った認証付きAPIの実装方法までを順番に学びました。Excel Onlineで動作するOffice Scriptsは、TypeScriptを利用して記述する自動化機能であり、単なるセル操作だけでなく、Web APIと連携したデータ取得やデータ送信まで実現できる強力な仕組みです。
まず重要なのは、APIとは何か、HTTP通信とは何かを理解することです。APIはアプリケーション同士をつなぐ窓口であり、HTTP通信はインターネットを通じてデータをやり取りする方法です。Office Scriptsではfetch関数を使うことで、GET通信によるデータ取得やPOST通信によるデータ送信を簡単に実装できます。asyncとawaitを使うことで、非同期処理を正しく制御し、レスポンスが返るまで待つ安全なプログラムを書くことができます。
次に学んだのがBearer Token認証です。認証付きAPIでは、AuthorizationヘッダーにBearerトークンを設定することで、正しい利用者であることをサーバー側に証明します。トークンは鍵のような存在であり、セキュリティ対策として厳重に管理する必要があります。Content-Typeにapplication/jsonを指定し、JSON.stringifyでデータを文字列に変換する流れも重要なポイントでした。
また、エラー処理もAPI連携では欠かせません。response.okで通信成功を確認し、tryとcatchで例外処理を行うことで、安全で実務に耐えられるExcel自動化プログラムになります。Office Scriptsと外部API連携を組み合わせることで、クラウドサービスとの連携、自動データ収集、業務効率化、レポート自動作成など、実践的なExcel自動化が実現できます。
総合サンプルプログラム(認証付きGET通信+エラー処理)
async function main(workbook: ExcelScript.Workbook) {
try {
const token = "YOUR_ACCESS_TOKEN";
const response = await fetch("https://api.example.com/secure-data", {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
}
});
if (!response.ok) {
throw new Error("通信失敗または認証エラー");
}
const data = await response.json();
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue(data.message);
sheet.getRange("A2").setValue("API連携成功");
} catch (error) {
workbook.getActiveWorksheet().getRange("A1").setValue("エラー発生");
}
}
このように、Office Scriptsでfetchを活用し、Bearer Token認証を正しく設定し、HTTP通信とエラー処理を組み合わせることで、安全で実用的なAPI連携プログラムが完成します。Excel自動化とWeb API連携を理解することで、業務改善やデータ活用の幅は大きく広がります。
生徒
Office Scriptsで外部API連携ができるということは、Excelだけの作業ではなく、クラウドサービスともつながるということですね。
先生
その通りです。fetchを使ったHTTP通信を理解すれば、Web APIからデータ取得もできますし、POST通信でデータ送信も可能になります。
生徒
Bearer Tokenは認証のための鍵のようなものだと理解しました。Authorizationヘッダーに設定するのが重要ですね。
先生
よく理解できています。さらにContent TypeやJSON形式、JSON文字列変換も重要なポイントです。
生徒
エラー処理も忘れてはいけないですね。response確認や例外処理が安全なAPI連携には必要だと分かりました。
先生
その理解で完璧です。Office Scriptsと外部API連携を組み合わせれば、Excel自動化はさらに強力になります。実務でも活用できる知識です。