Azure Logic Appsと国立国会図書館サーチAPIでSharePointの書籍リストページを作る

SharePointで書籍リストページを作りたかったが、情報入力が面倒くさい。そんなとき国立国会図書館サーチAPIなら書影も含めてISBNから取ってこれるそうなので、Azure Logic Appsを使って楽に入力する。

作るもの

こんな感じでSharePointの書籍リストを作る。

入力する際に、ISBNを入れるだけで書籍タイトルや書影が入力されるようにする。

前提(国立国会図書館APIについて)

検索APIが提供されているので、規則を守ってこれを使う。

前提(Power Automateについて)

最初、Azure Logic AppsではなくPower Automateを使おうとしたが、Power AutomateだとREST APIを叩くためのHTTPアクションを使用するためにPROライセンスが必要。一方で、Azure Logic AppsはPower Automateとほぼ同じUIで、利用したリソース毎に従量課金でHTTPアクションを利用できるため、簡易用途で試す際は良い(Azureのアカウント作成は必要)。

作り方

1. Listsを用意する

SharePointに空のリストを作る。ISBNを入力する列と、書籍情報が自動挿入される予定の列を作る。pubDateは日付、imageは画像、その他は1行テキストとする。

2. Azure Logic Appsで設定する

作成したリストに項目が作成されたときをトリガにする。

HTTPで国立国会図書館のAPIを叩く。

HTTPアクションの返り値の「本文」にXMLが返っているので、関数xpathを使ってXMLから所望の値を取り出して、各列の項目を更新する。URLはamazonで開くようにした(amazonのURLはISBNで指定できる)。

xpath(body('HTTP'), 'string(//channel/item/title)')

画像を入れるためには、上記の「項目を更新」アクションは画像に対応していないので、SharePointのAPIを用いる必要がある。SharePointのAPIを用いてリストに画像を挿入する方法はこちらを参考にした。

書影APIで画像を取得したあと、とりあえずsharepointに保存する。
※書影APIのために13桁のISBNが必要だったので、上記のHTTPアクションの返り値からISBN-13を取り出したが、そのへんは省略。
フォルダのパスとして、当該リストの画像格納フォルダがあるのでそこを指定する(一度当該リストに手動で画像を挿入して、その画像が格納された場所が格納場所)。ファイルコンテンツとしてHTTP2アクションの返り値「本文」を指定する。

画像をリストに格納するために、上記の「ファイル作成」アクションの返り値の中にある「Etag」の情報を、SharePointのAPIに適した形に書き換える。(このあたりは上記のブログを参考にしている。)

toLower(replace(split(body('ファイルの作成')?['ETag'],'}')?[0],'"{',''))

最後にSharePointのAPIを用いてリストに挿入する。

3. テストする

実際、当該リストに行を新規作成すると、入力したISBNからその他の情報が自動抽出して入力されることが確認できる。

※ちなみにISBNはamazon検索で適当に検索したものをコピペして入れた。書影APIは第2版などのISBNには対応していないようなのでときどき404エラーになるみたいで、もう少し修正の余地があるかも。

おわり

Power Automateライクに簡単にREST APIを叩いて結果をSharePointに返すものとして、Azure Logic Appsは有意義そう。SharePointに情報集約するために必要なTipsをためていきたい。

この記事が気に入ったらサポートをしてみませんか?