HULFT SquareとGraphAPIでSharePointOnlineのリストへ接続(前半：リストからデータを取得)

## はじめに
今回はHULFT SquareとMicrosoft GraphAPIを使ってSharePointOnlineのリストに接続し、データの取得と格納をしてみます。HULFT Squareでは、SharePointOnlineに接続する専用コネクタがありますが、こちらはSharePointOnline上のドキュメント操作に適したもののため、リストの操作はできません。そのため今回はGraphAPIを用いてリストへ接続します。前半の本記事ではリストからデータを取得するところまでを記載し、後半で取得したデータをリストに格納します。

後半　⇒　[HULFT SquareとGraphAPIでSharePointOnlineのリストへ接続(後半：リストへデータを格納)](https://qiita.com/Ma_Ohno/items/1962e79bbbe19f1056bf)

## SharePoint リストとは
SharePoint リストは、Microsoft SharePoint の機能の一つで、データを構造化して保存するためのサービスです。スプレッドシートのような形式でデータを表示し、ユーザーがデータを簡単に追加、編集、削除できるように設計されています。簡単に言えばSharePoint上のRDBのようなものです。

## 今回行う接続
今回はSharePointOnlineのリストへ読み書きするために、下記接続を試みます。リストからデータを取得し、HULFT Squareでデータ加工を行った後、再度リストに格納します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/bc2e9af6-37db-4915-9f6d-e0e9a781c770.png)

# リストとの連携をするために必要な設定
### Azure Portal側の作業
１．Microsoft Azure Entra IDでアプリの登録
### HULFT Square側の作業
２．OAuth認証のコネクション設定
３．RESTコネクタの設定
４．リストからデータ取得　←本記事ではここまで記載
５．リストへデータ格納


## Azure Portal側の作業
### １．Microsoft Azure Entra IDでアプリの登録
OAuth認証のために、Microsoft Azure Entra IDでアプリの登録を行います。登録の手順は[「HULFT Squareを使ってSharePointのファイルを自動で取得してみた」](https://qiita.com/sugimon/items/8cb821adcdcd8361dbf6)の「2.OAuth認証のコネクション設定（Entra ID側）」に詳しく記載があるためこちらの手順を実施ください。その中で、「APIのアクセス許可設定」をしている部分がございます。こちらを今回はGraphAPI用に変更します。
「APIのアクセス許可」ページで「アクセス許可の追加」⇒「GraphAPI」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/9a9b40a1-7cd2-4547-b4f3-a7a70fc760c4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/bde37546-5338-4037-ad12-f03b71a4dd8a.png)
「委任されたアクセス許可」をクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/9ff53c16-4641-458a-81eb-01d3a60a0c23.png)
以下4項目にチェックを入れてください。
・offline_access
・Sites.Manage.All
・Sites.Read.All
・Sites.ReadWrite.All
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/fb4bade0-52bc-47cb-b234-367d05cf4b61.png)
「アクセス許可の追加」をクリックします。他は上記記事と全く同じで問題ございません。

## HULFT Square側の作業
### ２．OAuth認証のコネクション設定
こちらの項目に関しましても[「HULFT Squareを使ってSharePointのファイルを自動で取得してみた」](https://qiita.com/sugimon/items/8cb821adcdcd8361dbf6)の「3.OAuth認証のコネクション設定（HULFT Square側）」に詳しく記載があるためこちらの手順を実施ください。スコープの設定は、先ほどアクセス許可を与えた下記4項目を設定ください。
・offline_access
・Sites.Manage.All
・Sites.Read.All
・Sites.ReadWrite.All
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/74137d97-1d96-43a2-943a-e3e376822680.png)

### ３．RESTコネクタの設定
次はHULFT SquareでGraphAPIに接続するためのRESTコネクション設定を行います。
「コネクション」より「新規追加」、「REST接続」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/2977010b-f91b-4160-9dc4-7e92036e03f7.png)
「次へ」を押下し、任意の名前、ワークスペースを設定し、「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/8194595d-26c8-4fc4-8ff1-0b36cd54a745.png)
「URL」へ「 https://graph.microsoft.com/v1.0/ 」を設定して「次へ」、任意のプロファイルを選択し、「次へ」、「完了」と押下。
これで、GraphAPIへのコネクション設定が完了です。

### ４．リストからデータ取得
ここからはHULFT Squareのデザイナー画面を開き作成します。まずはリストからデータを取得します。

RESTのGETアイコンを配置し下記のように設定します。
➀「必須設定」タブ
接続先：`「先ほど作成したRESTコネクション」　※「3.RESTコネクタの設定」` 
パス：`/sites/${var_サイトID}/lists/${var_リストID}/items/${var_アイテムID}`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/90e8aa78-2a64-4bb0-9722-d9164361a66e.png)

ここで`${var_サイトID}`には取得したいリストがあるサイトIDを、`${var_リストID}`には取得したいリストのリストIDを、`${var_アイテムID}`には取得したい行のアイテムIDを設定します。各IDの取得方法はこの記事では割愛します。実運用の際には、各アイテムを取得することになるかと思いますので、`${var_アイテムID}`を一つずつずらしてループしていくように作成することが多いかと思います。

②「レスポンス設定」タブ
データ出力先：`データ` 
データ形式：`JSON`
その他必要に応じて設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/61d7761e-f661-4e87-8a47-6b349b1e9bd4.png)

③「認証設定」タブ
認証：`Authコネクション利用` 
接続先：`「先ほど作成したOAuth認証のコネクション」　※「2.OAuth認証のコネクションの設定」`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/621ff1b9-32e4-4bbf-a698-7be81f31e0ba.png)


取得した結果をそのままファイルに書き出し、成形したものが下記です。リストのアイテムが取得できていることが確認できます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/750c8992-8106-4f52-b70e-74dea82d6fe4.png)
取得元のリストはこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4068471/73bdde9d-1be8-46bf-b27f-4bed33b2fcec.png)

# 最後に
いかがでしたでしょうか。今回は、GraphAPIとHULFT Squareを使って、SharePointOnlineのリストのデータを取得しました。後半の記事ではリストに書き込む方法について記載します。他のデータベースやSaaS製品とSharePointのリストを連携させることで活用の幅が広がるのではないでしょうか。ここまで読んでいただきありがとうございます。
[HULFT Squareについて知りたい方はこちら](https://www.hulft.com/service/hulft-square)