Google Apps ScriptでDify APIを使ってテキストを処理する方法
こんにちは!今回は、Google Apps Scriptを使用してDifyのAPIを利用し、テキストを処理する方法をご紹介します。個人的な備忘録として、実装手順や最終的なコードをまとめました。
※GPT-o1で出してもらってます。マジで個人的備忘です。
目的
Googleスプレッドシートのセルに入力されたテキストを、DifyのAPIを使って処理し、その結果を取得します。
前提条件
Googleアカウント:GoogleスプレッドシートとApps Scriptを使用するため。
Difyアカウント:APIキーを取得するため。
Dify APIキー:スクリプトで認証するために必要。
手順
1. スクリプトエディタを開く
Googleスプレッドシートを開きます。
メニューから「拡張機能」>「Apps Script」をクリックします。
2. スクリプトプロパティにAPIキーを設定
スクリプトエディタで「ファイル」>「プロジェクトのプロパティ」を選択。
「スクリプトのプロパティ」タブを開きます。
「+ プロパティを追加」をクリックし、以下の情報を入力します。
プロパティ名:`DIFY_API_KEY`
値:あなたのDify APIキー
「保存」をクリックします。
3. コードを入力
以下のコードをスクリプトエディタに貼り付けます。エンドポイントURLやユーザー識別子など、個人情報が特定できる部分はマスクしています。ご自身で実装される際は、適切な情報に置き換えてください。
function processText(text) {
const scriptProperties = PropertiesService.getScriptProperties();
const apiKey = scriptProperties.getProperty("DIFY_API_KEY"); // スクリプトプロパティから取得
const url = "https://your-personal-domain.com/v1/workflows/run"; // ←あなたのエンドポイントURLに置き換えてください
const headers = {
"Authorization": "Bearer " + apiKey,
"Content-Type": "application/json"
};
const payload = {
"inputs": { "text": text }, // "text"キーを使用
"response_mode": "blocking",
"user": "your_user_id" // あなたのユーザー識別子に置き換えてください
};
const options = {
"method": "post",
"headers": headers,
"payload": JSON.stringify(payload),
"muteHttpExceptions": true // HTTPエラー発生時にも例外をスローしない
};
const response = UrlFetchApp.fetch(url, options);
// レスポンスの処理
const responseText = response.getContentText();
if (response.getResponseCode() === 200) {
Logger.log(responseText); // レスポンス内容をログに出力
const responseJson = JSON.parse(responseText);
if (responseJson.data && responseJson.data.outputs && responseJson.data.outputs.text) {
return responseJson.data.outputs.text; // 処理結果のテキストを返す
} else {
return "No text output found in the response.";
}
} else {
Logger.log("Error: " + response.getResponseCode() + " - " + responseText); // エラー詳細をログに出力
return "Error: " + response.getResponseCode() + " - " + responseText;
}
}
ポイント:
`processText`関数は、指定したテキストをDifyのAPIで処理し、その結果を返します。
エンドポイントURL (`url`) は、あなたの環境に合わせて置き換えてください。
ユーザー識別子 (`user`) は、アプリケーション内で一意となる文字列を使用してください。
エラーとその解決方法
エラー1: Error: 401
原因:
認証情報が正しく設定されていない。
APIキーが無効。
対処法:
スクリプトプロパティに正しいAPIキーが設定されているか確認。
APIキーに不要なスペースや誤字がないか確認。
エラー2: Error: 404
原因:
APIエンドポイントのURLが間違っている。
対処法:
APIドキュメントを確認し、正しいエンドポイントURLを使用。
自身でクラウドで環境立ててる人はエンドポイント違うよ
コード内のURLを適切なエンドポイントに修正。
エラー3: Error: 400 - "text is required in input form"
原因:
`inputs`オブジェクト内のキー名が間違っている。
Difyワークフロー内の「開始」で指定した変数名を設定する
対処法:
`inputs`のキーを`"text"`に変更。
"inputs": { "text": text },
まとめ
今回、Google Apps Scriptを使用してDifyのAPIを活用し、テキストを処理する方法を学びました。エラーが発生した際には、エラーメッセージをよく読み、APIドキュメントを参照することで解決策を見つけることができます。
備忘録ポイント:
APIキーの管理:スクリプトプロパティを使用して安全に管理。
エラーメッセージの活用:エラーメッセージから問題点を特定。
APIドキュメントの重要性:最新のドキュメントを参照し、正しいエンドポイントやパラメータを確認。
個人情報の保護:コードを公開する際には、個人情報が含まれていないか十分に確認。
これで、スプレッドシート上で簡単にテキスト処理ができるようになりました。今後、さらに応用して自分だけの自動化ツールを作成してみてください。
参考リンク:
注意:あとで自分で見返す用です