【ガルーン活用】VBSやVBAからファイルを添付して「メッセージ」を送信してみよう

ガルーン活用
スポンサーリンク

今回の記事では、サイボウズ社のグループウェア「ガルーン」のSOAP APIを利用して、VBScriptやVBAから「ファイルを添付したメッセージを送信」する処理のサンプルコードを紹介していきます。

ガルーンはオンプレ版を使用して検証していますが、クラウド版でもおそらく同様の実装で利用できると思います。

尚、当ブログでは、過去にVBAやVBScriptを使用した「メッセージ」を送信するサンプルプログラムを紹介しております。
ただ、その時の記事ではファイルの添付方法の解説まではしていなかったのですが、ファイル添付のやり方について当ブログに問い合わせをいただいたこともあり、新しく記事にしてみました。

以前に作成した「ガルーンのSOAP APIを使用してファイルを添付せずにメッセージを送信する方法」に関する記事のリンク先は以下です。
ファイルの添付が不要であれば、こちらの記事の方がシンプルでわかりやすいかと思います。

 
 

メッセージ送信APIの概要とファイル添付の仕組み

ガルーンで「メッセージ」を送信するSOAP APIの名称は「MessageCreateThreads」です。

当APIの詳しい解説は以下のサイボウズ社更新のデベロッパーサイトにてご確認ください。

 
 

サンプルプログラムの処理概要

今回紹介するサンプルプログラムは、VBA又はVBScriptで動作します。

尚、VBAとVBScriptは構文が似ており、VBScriptの方がVBAよりシンプルな言語仕様のため、VBScript用のコードであれば、そのコードを流用することで、VBAでもほぼ動作します。
よって、当記事では「VBScript」のコードで処理を解説していきます。

今回のサンプルプログラムの処理の流れは以下になります。

  1. 添付したいファイルをBase64形式でエンコードする
  2. メッセージ用xmlリクエストを作成してAPIにPOST
  3. API実行結果のレスポンスを受け取りxmlを解析

今回のポイントは、添付するファイルを「Base64」形式に変換する必要があるところです。
今回紹介するサンプルプログラムでは、このBase64形式への変換(エンコード)も実装しています。

次項で「Base64形式へのエンコード」について簡単に説明していきます。

 

【参考知識】「Base64」とは

当項では、記事の本題から少し外れますが、Base64へのエンコードを解説します。

まずはWikipediaから引用してみましょう。

Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。

Base64 -Wikipedia-

簡単に言えば、64進数で表現されるデータ形式です。
aからzとAからZ、0から9、+と/を使用してデータが構成されます(※さらにパディング用として = も使用)。

Wikipediaでは電子メールでファイルを添付する際に使用されると記載されておりますが、物理的なファイルをバイナリ形式の文字列に変換することで、あらゆるファイルをただのテキストデータとして通信データ内に組み込めるようになるため、電子メール以外にも広く利用されています。

今回の記事で紹介するようなWeb APIでは、xmlやjsonといったデータフォーマットがよく使われますが、それらのフォーマット内にBase64でエンコードしたバイナリ文字列を値に含めることは比較的容易であり、Web APIではファイル転送時のデータ変換処理として広く利用されています。

よって、ガルーンのAPIだけではなく、他社製のパッケージやクラウドサービスのWeb APIを利用する場合でもBase64を使用する機会は多いです。
これを機にBase64エンコードを習得しておくことをおススメします。

 
 

ファイルを添付してメッセージを送信するサンプルプログラム

当項では、ガルーンのSOAP APIとして提供されている「MessageCreateThreads」を使用して、ファイルを添付しつつメッセージを送信するサンプルプログラムを紹介していきます。

尚、冒頭でも説明しましたが、ファイル添付をしないメッセージの送信処理であれば、以下の記事で詳しく解説しているため、当記事では、ファイル添付をする際に必要な処理部分の解説と、全体のサンプルプログラムを紹介していきます。

 

ファイルをBase64形式にエンコードする処理

メッセージを送信する際には、Base64形式に変換したバイナリ文字列を、APIのリクエストに埋め込みます。

尚、Base64へエンコードするサンプルプログラムは、今回と同様に、SOAP APIを利用して、ガルーンの「ファイル管理」にファイルをアップロードするサンプルプログラムを紹介しており、その時に解説したサンプルプログラムと同一です。

ファイル管理へのアップロードの自動化に興味があれば、以下の記事も参考にしてください。

タイトルとURLをコピーしました