メインコンテンツまでスキップ

Outlook Calendar連携を行う

Outlook Calendarとの連携に必要な設定について解説します。

概要

Outlook Calendar連携はOAuth2.0を利用し、Accel-Mart QuickがOffice 365のOutlook Calendarリソースへアクセスしてデータ連携を行う機能です。

以下のようなことができます。

  • 営業支援の活動予定をOutlook Calendarへイベントとして連携します。

アクター

このドキュメントでは以下のように定義します。

Office 365の準備

Office 365連携に必要な関連サービスの準備を行います。
準備の詳細については、「Office 365連携を行う - Office 365の準備」を参照してください。

Microsoft Azureの準備

Outlook Calendar連携に必要な関連サービスの準備を行います。
本項の内容はMicrosoft Azure 管理者向けの作業です。
Office 365連携を行う - Office 365の利用を開始する」で取得したOffice 365サブスクリプションアカウントをMicrosoft Azure管理者とします。

備考

すでにMicrosoft Azureアカウントを保持しており、そのアカウントをMicrosoft Azure管理者 として扱う場合は、「すでに存在する Microsoft Azure 管理者ユーザから Office 365 の組織のディレクトリを参照可能にする」を行ってください。

テナントIDを確認する

  1. 以下のURLからMicrosoft Azureの管理ポータルにMicrosoft Azure 管理者ユーザでサインインします。

  2. サイドメニューから「Microsoft Entra ID」をクリックします。

  3. 現在のディレクトリがOffice 365の組織のディレクトリではない場合は「テナントの管理」から「テナントの切り替え」を行います。

  4. テナントIDを確認します。Accel-Mart Quick システム管理者がOutlook Calendar連携設定を行う際に利用します。

    「テナントID確認」

ディレクトリにアプリケーションを設定する

アプリケーションを登録する

Microsoft Azureの管理ポータルからOutlook Calendar連携に必要な情報をアプリケーションとして登録します。

  1. サイドメニューの「管理」→「アプリの登録」をクリックします。

  2. 「新規登録」をクリックします。

  3. 以下を入力または選択して「登録」をクリックします。

    • 名前に任意の名称を入力
    • サポートされているアカウントの種類に「任意の組織ディレクトリ内のアカウント(任意の Azure AD ディレクトリ - マルチテナント)」を選択

    「アプリケーションの登録」

  4. 以上でアプリケーションの登録は完了です。

    「アプリケーション登録完了」

    ヒント

    Accel-Mart Quick システム管理者がOutlook Calendar連携設定を行う際に上記のアプリケーションIDを利用します。

アプリケーションを設定する

Microsoft Azureの管理ポータルから登録したアプリケーションの構成を変更します。

  1. 先程登録したアプリの「管理」→「認証」をクリックします。

  2. 「管理」→「APIのアクセス許可」をクリックします。

  3. 「アクセス許可の追加」をクリックします。

    「管理 - APIのアクセス許可」

  4. 「 Microsoft Graph 」をクリックします。

    「API アクセス許可の要求」

  5. 「アプリケーションに必要なアクセス許可の種類」の「アプリケーションの許可」をクリックします。

    「API アクセス許可の要求」

  6. 「Calendars」をクリックし、「Calendars.ReadWrite」を選択し、「アクセス許可の追加」をクリックします。

    「API アクセス許可の要求」

    備考

    「API アクセス許可の要求」の「アプリケーションの許可」におけるOutlook Calendarの許可設定についての詳細は Microsoft社 の以下のドキュメントを参照してください。

  7. 「管理者の同意を与えます」をクリックし、管理者の同意を付与します。

    「API - 管理者の同意」

  8. 「管理」→「証明書とシークレット」をクリックします。

  9. 「クライアント シークレット」の「新しいクライアント シークレット」をクリックします。

    新しいクライアント シークレット

  10. Accel-Mart Quickからアクセスする際に必要なクライアントシークレットを生成します。 以下を入力または選択して「追加」をクリックします。

    • 説明にクライアントシークレットの説明を入力
    • 有効期限にクライアントシークレットの有効期限を選択

    クライアントシークレットの追加

    注意

    クライアントシークレットの値は作成直後に一度のみ表示されます。ページを終了する前にクライアントシークレットの値を保存してください。

    「クライアントシークレット」

    注記

    クライアントシークレットの有効期限が切れた場合は、上記の手順で再発行する必要があります。

  11. 以上でアプリケーションの設定が完了です。
    以下の内容はAccel-Mart Quick システム管理者がOutlook Calendar連携設定を行う際に利用します。

    • テナントID
    • アプリケーションID
    • クライアントシークレット(作成直後に一度のみ表示されます

Outlook Calendar連携の設定

Accel-Mart QuickでOutlook Calendar連携を利用できるようにするために、Outlook Calendar連携設定を行います。

Outlook Calendar連携設定を登録する

この項目はAccel-Mart Quick システム管理者が実施する作業です。

  1. 「管理」→「外部システム連携設定」→「Outlook Calendar連携設定」をクリックします。

    「Outlook Calendar連携設定」

  2. 必要な項目を入力し、「更新」をクリックします。

    更新

    項目名説明
    テナントID利用するテナントのテナントIDを設定します。「Microsoft Azure の準備」のテナントIDを設定してください。
    アプリケーションID利用するアプリケーションのアプリケーションIDを設定します。「Microsoft Azure の準備」のアプリケーションIDを設定してください。
    クライアントシークレット利用するアプリケーションのクライアントシークレットを設定します。「Microsoft Azure の準備」のクライアントシークレットの追加時に得られるキーを設定してください。
  3. Outlook Calendar連携設定を更新できました。

    Outlook Calendar連携設定の更新

外部システムユーザ連携設定を行う

Accel-Mart QuickユーザとOffice 365ユーザの紐づけを行います。
この項目はAccel-Mart Quick システム管理者、または、Accel-Mart Quick 利用者が実施する作業です。

Accel-Mart Quick システム管理者の場合

  1. メニューの「管理」→「外部システム連携設定」→「外部システムユーザ連携」から「外部システムユーザ識別子設定」画面を表示します。

  2. 「検索条件」の「外部システム」の項目で「Office365」を選択します。

    「外部システムユーザ識別子設定」

  3. Office 365 ユーザアカウントを設定したいユーザの「編集」アイコンをクリックします。

    「外部システムユーザ識別子設定」

  4. 「外部システムユーザ情報編集」ダイアログが開きます。

  5. 「ユーザ識別子」にそのユーザが使用するOffice 365 ユーザアカウントのユーザIDを入力します。

    「外部システムユーザ情報編集」

  6. 「更新」をクリックします。

  7. 外部システムユーザ連携設定ができました。 これを、必要なユーザ分登録します。

Accel-Mart Quick 利用者の場合

Accel-Mart Quick 利用者の場合は、自身が使用するアカウントについてのみ設定できます。

  1. メニューのユーザ名表示部分をクリックし、「個人設定」→「プロファイル」から「プロファイル」画面を開きます。

    「プロファイル」メニュー

  2. ツールバーの「外部システムユーザ識別子設定」をクリックし、「外部システムユーザ識別子設定」画面を開きます。

    「プロファイル」

  3. 「Office365」の「ユーザ識別子」の項目に、使用するOffice 365 ユーザアカウントのユーザIDを入力します。

    「外部システムユーザ識別子設定」

  4. 「変更」をクリックします。

  5. 外部システムユーザ連携設定ができました。

Outlook Calendar連携の活用例

Outlook Calendar連携を実際に活用する例をいくつかご紹介します。

  • 活動予定連携
    • 営業支援の活動予定をOutlook Calendarへイベントとして連携します。
  • Outlook Calendar連携APIを利用する
    • 業務ロジックでOutlook Calendar連携APIを利用した処理を作成します。
    • 例えば、ワークフローの申請・承認時や、Webデータベースへのデータ登録時に関連する日程をOutlook Calendarに登録する処理が作成できます。

Outlook Calendar連携API

Outlook Calendarのイベントを登録・更新・削除するAPIです。
業務ロジックのユーザ定義(JavaScript定義)内で利用できます。

イベント登録

amq.OutlookCalendarManager.registEvent(userCd, subject, body, startDate, endDate, attenderUserCdList, isPrivate)

実装例
function run(input) {
var result = amq.OutlookCalendarManager.registEvent(input.userCd, input.subject, input.body, input.startDate, input.endDate, input.attenderUserCdList, false);
return {
result: result.data
};
}

パラメータ
名称説明備考
userCdユーザコードstringイベント開催者のユーザコード
subjectタイトルstringイベントのタイトル
body説明stringイベントの説明文
startDate開始日時dateイベントの開始日時
endDate終了日時dateイベントの終了日時
attenderUserCdList出席者string[]出席者のユーザコード配列
isPrivate非公開フラグbooleantrueを指定すると非公開イベントとして登録されます
イベントの終了日時

以下のように、フォーム上で入力された日付を元に終了日時を算出したい場合は、マッピング関数「日付操作 - calcDate」を利用します。

  • 日付アイテムで選択された日付について、Outlook Calendarに終日のイベントして登録したい場合
    • 入力の日付に対してcalcDateを用いて1日分の秒数(86400)を加算した値を終了日時に設定します。
  • 期間アイテムで選択された開始日・終了日をOutlook Calendarのイベントの開始日・終了日に設定したい場合
    • 終了日について、calcDateを用いて1日分の秒数(86400)を加算した値を終了日時に設定します。
    • 加算せずに入力値をそのまま設定した場合、当該日付の0時として登録されてしまいます。(例えば、開始日:1月1日/終了日:1月2日の場合、1月1日終日のイベントとして登録されます)

マッピング関数の使い方については「マッピング関数の利用」を参照してください。

返却値
名称説明備考
errorエラー判定booleanAPI実行でエラーが発生した場合はtrueが返却されます
data取得情報string / nullイベント登録に成功した場合はイベントIDが、失敗した場合はnullが返却されます
イベントIDの保存

Outlook Calendar連携APIを用いてイベントの更新・削除を行いたい場合は、返却値から取得できるイベントIDを永続化する必要があります。

イベント更新

amq.OutlookCalendarManager.updateEvent(eventId, userCd, subject, body, startDate, endDate, attenderUserCdList, isPrivate)

実装例
function run(input) {
amq.OutlookCalendarManager.updateEvent(input.eventId, input.userCd, input.subject, input.body, input.startDate, input.endDate, input.attenderUserCdList, false);
}

パラメータ

名称説明備考
eventIdイベントIDstring更新対象のイベントID
userCdユーザコードstringイベント開催者のユーザコード
subjectタイトルstringイベントのタイトル
body説明stringイベントの説明文
startDate開始日時dateイベントの開始日時
endDate終了日時dateイベントの終了日時
attenderUserCdList出席者string[]出席者のユーザコード配列
isPrivate非公開フラグbooleantrueを指定すると非公開イベントとして更新されます
イベント開催者のユーザコード

イベント開催者のユーザコードは、イベント登録時に指定したユーザコードと同じものを指定してください。 (異なるユーザコードを指定した場合、イベントの更新が正しく行われません。)

返却値
名称説明備考
errorエラー判定booleanAPI実行でエラーが発生した場合はtrueが返却されます
data取得情報string / nullイベント更新に成功した場合はイベントIDが、失敗した場合はnullが返却されます

イベント削除

amq.OutlookCalendarManager.removeEvent(userCd, eventId)

実装例
function run(input) {
amq.OutlookCalendarManager.removeEvent(input.userCd, input.eventId);
}

パラメータ

名称説明備考
userCdユーザコードstringイベント開催者のユーザコード
eventIdイベントIDstring削除対象のイベントID
イベント開催者のユーザコード

イベント開催者のユーザコードは、イベント登録時に指定したユーザコードと同じものを指定してください。 (異なるユーザコードを指定した場合、イベントの削除が正しく行われません。)

返却値
名称説明備考
errorエラー判定booleanAPI実行でエラーが発生した場合はtrueが返却されます