Microsoft Graph APIを使用して教育の課題と提出用のファイルをアップロードする
リソースは、教育の 課題 と提出に不可欠 な部分です。 教師は課題フォルダーにアップロードするリソースを決定し、学生は提出フォルダーにアップロードするリソースを決定します。
この記事では、Microsoft Graph の Education API を使用して、課題または申請フォルダーにファイルをアップロードする方法について説明します。
前提条件
ファイルをアップロードする前に、特定の教育の割り当てまたは提出リソースのファイルをアップロードする SharePoint フォルダーを設定します。
リソースをアップロードする
API はsetUpResourcesFolder
、resourcesFolderUrl プロパティを含むモデルを返します。
{
...
"resourcesFolderUrl": "https://graph.microsoft.com/v1.0/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/items/01YT2AIJRQLVYT24IWWFAJHMRRNYCB3GFA"
...
}
次の手順では、リソース/ファイルを関連するリソース フォルダーにアップロードする方法について説明します。
手順 1 - アップロード URL を作成する
この特定の形式 {resourcesFolderUrl}:/{Name of new file}:/content
に従ってコンテンツをアップロードする URL を作成します。 次の例は、 resourcesFolderUrl プロパティを含むアップロード URL を示しています。
https://graph.microsoft.com/v1.0/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/items/01YT2AIJRQLVYT24IWWFAJHMRRNYCB3GE2:/MyPictureFile.png:/content
手順 2 - リソースを SharePoint にアップロードする
アップロード URL を含む PUT 要求を行って、コンテンツをアップロードします。
要求の本文の内容は、アップロードするファイルのバイナリ ストリームである必要があります。
詳細については、「 アップロード セッションを使用して大きなファイルをアップロードする」を参照してください。
要求
次の例は要求を示しています。
PUT https://graph.microsoft.com/v1.0/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/items/01YT2AIJRQLVYT24IWWFAJHMRRNYCB3GE2:/MyPictureFile.png:/content
Content-Type: text/plain
Binary data for the file
応答
次の例は応答を示しています。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('b%216SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F')/items/$entity",
"@microsoft.graph.downloadUrl": "...",
"createdDateTime": "2021-03-11T18:49:47Z",
"eTag": "\"{EDD00CE7-B74C-4C3E-BA3E-484CB41EF31D},1\"",
"id": "01YT2AIJU7DAXTU6XLOJGYWYMTGM5JT5UQ",
"lastModifiedDateTime": "2021-03-11T18:49:47Z",
"name": "MyPictureFile.png",
"webUrl": "https://contososdorg.sharepoint.com/sites/GraphTest/Class%20Files/Assignments/Test%20File%20Distribution/MyPictureFile.png",
"cTag": "\"c:{EDD00CE7-B74C-4C3E-BA3E-484CB41EF31D},2\"",
"size": 2302233,
"createdBy": {
"application": null,
"device": null,
"user": {
"email": "t-james@contososd.org",
"id": "42ff222c-571f-497c-a9d3-f77ea9ece327",
"displayName": "James"
}
},
"lastModifiedBy": {
"application": null,
"device": null,
"user": {
"email": "t-james@contososd.org",
"id": "42ff222c-571f-497c-a9d3-f77ea9ece327",
"displayName": "James"
}
},
"parentReference": {
"driveId": "b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F",
"driveType": "documentLibrary",
"id": "01YT2AIJRQLVYT24IWWFAJHMRRNYCB3GE2",
"path": "/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/root:/Assignments/Test File Distribution"
},
"file": {
"mimeType": "image/png",
"hashes": {
"quickXorHash": "CvYQxN7MCGrIsdrA38c6wWhOu5g="
}
},
"fileSystemInfo": {
"createdDateTime": "2021-03-11T18:49:47Z",
"lastModifiedDateTime": "2021-03-11T18:49:47Z"
},
"image": {}
}
手順 3 - fileUrl プロパティの値を構築する
fileUrl プロパティの値は、次の形式を使用してビルドします。 https://graph.microsoft.com/v1.0/drives/{drive-id}/items/{item-id}
{drive-id}
プレースホルダーと {item-id}
プレースホルダーを、次の表で説明する値に置き換えます。
プレースホルダー | 説明 | 例 |
---|---|---|
{drive-id} |
手順 2 で使用した要求 URL からのドライブ ID。 | b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F |
{item-id} |
手順 2 で取得した応答本文からの項目 ID。 | 01YT2AIJU7DAXTU6XLOJGYWYMTGM5JT5UQ |
次の例は、この形式に基づく fileUrl を 示しています。
https://graph.microsoft.com/v1.0/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/items/01YT2AIJU7DAXTU6XLOJGYWYMTGM5JT5UQ
手順 4 - educationAssignmentResource を作成する
この手順では、SharePoint リソースを割り当てリソース フォルダーにアップロードする方法を示します。
fileUrl
要求本文の前の手順の を使用して、educationAssignmentResource を作成します。
要求
次の例は要求を示しています。
POST https://graph.microsoft.com/v1.0/education/classes/b07edbef-7420-4b3d-8f7c-d599cf21e069/assignments/48b80dff-452a-4108-bd85-fa0d84e39d0a/resources
Content-type: application/json
{
"resource": {
"@odata.type": "#microsoft.graph.educationFileResource",
"fileUrl": "https://graph.microsoft.com/v1.0/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/items/01YT2AIJU7DAXTU6XLOJGYWYMTGM5JT5UQ",
"displayName": "Parts of a Sonnet"
}
}
応答
次の例は応答を示しています。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#education/classes('b07edbef-7420-4b3d-8f7c-d599cf21e069')/assignments('48b80dff-452a-4108-bd85-fa0d84e39d0a')/resources/$entity",
"distributeForStudentWork": false,
"id": "ff1aafe4-ae89-49c3-8366-4b509f640d6a",
"resource": {
"@odata.type": "#microsoft.graph.educationFileResource",
"displayName": "Parts of a Sonnet",
"createdDateTime": "2021-03-11T18:35:40.6642039Z",
"lastModifiedDateTime": "2021-03-11T18:35:40.6642039Z",
"fileUrl": "https://graph.microsoft.com/v1.0/drives/b!6SQl0y4WHkS2P5MeIsSGpKwfynEIaD1OvPVeH4wbOp_1uyhNwJMSSpseJneB7Z4F/items/01YT2AIJU7DAXTU6XLOJGYWYMTGM5JT5UQ",
"createdBy": {
"application": null,
"device": null,
"user": {
"id": "42ff222c-571f-497c-a9d3-f77ea9ece327",
"displayName": null
}
},
"lastModifiedBy": {
"application": null,
"device": null,
"user": {
"id": "42ff222c-571f-497c-a9d3-f77ea9ece327",
"displayName": null
}
}
}
}
これで、SharePoint リソースが割り当てリソース フォルダーに正常にアップロードされました (関連付けられている割り当てにアタッチされました)。 同様の手順に従って、1 つ以上の学生の作業リソースをアップロードできます。
詳細については、「 educationSubmissionResource の作成」を参照してください。