はじめに
SharePoint Lists内で画像を管理する際に Site Asssetsなどの同じSharePoint Site内のフォルダを利用せず、各行内にて画像等を添付ファイルとして管理する方法についてまとめました。
FormDigestValueの取得
SharePoint RESTAPIで作成・更新・削除処理を行う場合、OAuthを使用しない場合はFormDigestValueが必要 になります。
以下のリクエストで取得することができます。
POST https://example.sharepoint.com/sites/<siteName>/_api/contextinfo
Authorization: Bearer <accessToken>
Accept: application/json;odata=verbose
Content-Type: application/json;odata=verbose
レスポンスのJSONデータ内の["d"]["GetContextWebInformation"]["FormDigestValue"]
に含まれる値がFormDigestValueです。
添付ファイルをPOSTする
POST https://example.sharepoint.com/sites/<siteName>/_api/web/lists/GetByTitle('testList')/items(1)/AttachmentFiles/add(FileName='testImage.png')
Authorization: Bearer <accessToken>
Accept: application/json;odata=verbose
Content-Type: application/json;odata=verbose
X-RequestDigest: <formDigestValue>
ちなみに、ファイル名に"Reserved_ImageAttachment_"をつけると、添付ファイルがSharePoint Listsから手動で操作できない状態でPOSTされます。
添付ファイルを画像列にサムネイルとして表示する
SharePoint Listsに新しいアイテムを追加する時と同様に、以下のようなJSONを POST または UPDATE することで、画像列にファイル名を設定できます。
{
"testImageColumn": {
"fileName": "testImage.png"
}
}
参考
SharePoint REST API を使ってリスト アイテムの画像列を更新する
REST を使用してリストとリスト アイテムを操作する