Spécifiez le canal par défaut pour les notifications d’affectation d’éducation à l’aide de Microsoft API Graph
Cet article explique comment utiliser l’API éducation dans Microsoft Graph pour spécifier le canal Microsoft Teams par défaut à envoyer des notifications à propos d’un devoir. La spécification du canal par défaut implique la création de la propriété de chaîne notificationChannelUrl pour un educationAssignment. La valeur par défaut de cette propriété est null
.
Configuration requise
Avant de générer la propriété, identifiez l’équipe correspondante pour l’affectation et le nom du canal.
Pour identifier l’équipe pour le devoir, dans le menu de gauche de Teams, cliquez sur Teams , puis sélectionnez l’équipe appropriée.
Identifiez le canal approprié au sein de l’équipe que vous avez sélectionnée.
Générer la valeur de la propriété notificationChannelUrl
Les étapes suivantes décrivent comment générer la valeur de la propriété.
Étape 1 : Obtenir l’ID d’équipe en fonction du nom de votre équipe
Pour rechercher l’ID d’équipe, effectuez une requête GET avec le nom de l’équipe. Si vous avez déjà l’ID d’équipe, ignorez cette étape.
Demande
L’exemple suivant illustre la demande.
GET https://graph.microsoft.com/v1.0/teams?$filter=displayName eq 'English Fall ''21'
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 Ok
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams",
"@odata.count": 1,
"value": [
{
"id": "72a7baec-c3e9-4213-a850-f62de0adad5f",
"createdDateTime": null,
"displayName": "English Fall '21",
"description": "English Fall '21",
"internalId": null,
"classification": null,
"specialization": null,
"visibility": null,
"webUrl": null,
"isArchived": null,
"isMembershipLimitedToOwners": null,
"memberSettings": null,
"guestSettings": null,
"messagingSettings": null,
"funSettings": null,
"discoverySettings": null
}
]
}
Étape 2 : Obtenir l’ID de canal en fonction du nom du canal et de l’ID d’équipe
Effectuez une requête GET avec l’ID d’équipe obtenu à l’étape précédente et le nom du canal. Ignorez cette étape si vous avez déjà l’ID de canal.
Demande
L’exemple suivant illustre la demande.
GET https://graph.microsoft.com/v1.0/teams/72a7baec-c3e9-4213-a850-f62de0adad5f/channels?$filter=displayName eq 'General'
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 Ok
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('72a7baec-c3e9-4213-a850-f62de0adad5f')/channels",
"@odata.count": 1,
"value": [
{
"id": "19:jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2",
"createdDateTime": "2021-08-25T12:33:49.124Z",
"displayName": "General",
"description": "English Fall '21",
"isFavoriteByDefault": null,
"email": "",
"webUrl": "https://teams.microsoft.com/l/channel/19%3Ajb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1%40thread.tacv2/General?groupId=72a7baec-c3e9-4213-a850-f62de0adad5f&tenantId=b6338c92-533e-4f6d-a327-994263712399",
"membershipType": "standard"
}
]
}
Étape 3 : construire la valeur de la propriété notificationChannelUrl
Générez la valeur de la propriété notificationChannelUrl au format suivant :
https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}
Remplacez les {team-id}
espaces réservés et {channel-id}
par les valeurs décrites dans le tableau suivant.
Espace réservé | Description | Exemple |
---|---|---|
{team-id} |
ID d’équipe de la réponse à l’étape 1. Il s’agit de l’équipe à laquelle appartient l’affectation actuelle. | 72a7baec-c3e9-4213-a850-f62de0adad5f |
{channel-id} |
ID d’élément du corps de la réponse obtenu à l’étape 2. | 19 :jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2 |
L’exemple suivant montre une notificationChannelUrl basée sur ce format.
https://graph.microsoft.com/v1.0/teams/72a7baec-c3e9-4213-a850-f62de0adad5f/channels/19:jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2
Étape 4 : Affecter la valeur à la propriété notificationChannelUrl pour l’affectation
Vous avez maintenant correctement généré l’URL. Il est temps d’affecter la valeur à la propriété . Vous pouvez effectuer cette opération en mettant à jour les ressources educationAssignment ou educationAssignmentDefaults .
Exemple 1 : Mettre à jour un educationAssignment
Demande
L’exemple suivant illustre une demande.
PATCH https://graph.microsoft.com/beta/education/classes/72a7baec-c3e9-4213-a850-f62de0adad5f/assignments/4679bc1b-90c5-45af-ae1a-d5357672ed39
Content-type: application/json
{
"displayName": "Property update",
"notificationChannelUrl": "https://graph.microsoft.com/v1.0/teams/72a7baec-c3e9-4213-a850-f62de0adad5f/channels/19:jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2"
}
Réponse
L’exemple suivant illustre la réponse.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#education/classes('72a7baec-c3e9-4213-a850-f62de0adad5f')/assignments/$entity",
"classId": "72a7baec-c3e9-4213-a850-f62de0adad5f",
"displayName": "Property update",
"closeDateTime": null,
"dueDateTime": "2021-09-10T00:00:00Z",
"assignDateTime": null,
"assignedDateTime": null,
"allowLateSubmissions": true,
"resourcesFolderUrl": null,
"createdDateTime": "2021-09-03T23:57:14.6088791Z",
"lastModifiedDateTime": "2021-09-04T15:01:35.3361649Z",
"allowStudentsToAddResourcesToSubmission": true,
"status": "draft",
"notificationChannelUrl": "https://graph.microsoft.com/v1.0/teams/72a7baec-c3e9-4213-a850-f62de0adad5f/channels/19:jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2",
"webUrl": "https://teams.microsoft.com/l/entity/66aeee93-507d-479a-a3ef-8f494af43945/classroom?context=%7B%22subEntityId%22%3A%22%7B%5C%22version%5C%22%3A%5C%221.0%5C%22,%5C%22config%5C%22%3A%7B%5C%22classes%5C%22%3A%5B%7B%5C%22id%5C%22%3A%5C%2272a7baec-c3e9-4213-a850-f62de0adad5f%5C%22,%5C%22displayName%5C%22%3Anull,%5C%22assignmentIds%5C%22%3A%5B%5C%224679bc1b-90c5-45af-ae1a-d5357672ed39%5C%22%5D%7D%5D%7D,%5C%22action%5C%22%3A%5C%22navigate%5C%22,%5C%22view%5C%22%3A%5C%22assignment-viewer%5C%22%7D%22,%22channelId%22%3Anull%7D",
"addToCalendarAction": "studentsAndPublisher",
"addedStudentAction": "none",
"id": "4679bc1b-90c5-45af-ae1a-d5357672ed39",
"instructions": {
"content": "Read chapter 5 and write your review",
"contentType": "text"
},
"grading": {
"@odata.type": "#microsoft.graph.educationAssignmentPointsGradeType",
"maxPoints": 50
},
"assignTo": {
"@odata.type": "#microsoft.graph.educationAssignmentClassRecipient"
},
"createdBy": {
"application": null,
"device": null,
"user": {
"id": "f3a5344e-dbde-48b0-be24-b5b62a243836",
"displayName": null
}
},
"lastModifiedBy": {
"application": null,
"device": null,
"user": {
"id": "f3a5344e-dbde-48b0-be24-b5b62a243836",
"displayName": null
}
}
}
Exemple 2 : Update educationAssignmentDefaults
Demande
PATCH https://graph.microsoft.com/beta/education/classes/72a7baec-c3e9-4213-a850-f62de0adad5f/assignmentDefaults
Content-Type: application/json
{
"addToCalendarAction": "studentsOnly",
"notificationChannelUrl": "https://graph.microsoft.com/v1.0/teams/72a7baec-c3e9-4213-a850-f62de0adad5f/channels/19:jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2"
}
Réponse
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 200 OK
Content-Type: application/json
{
"addedStudentAction": "assignIfOpen",
"addToCalendarAction": "studentsOnly",
"dueTime": "23:59:00",
"notificationChannelUrl": "https://graph.microsoft.com/v1.0/teams/72a7baec-c3e9-4213-a850-f62de0adad5f/channels/19:jb2-ckDy2jONyW6ElO1phAVD5cTjuswYgoumI0oxrUw1@thread.tacv2"
}