Este documento descreve as APIs do Microsoft Graph utilizadas no projeto para automatização de criação de planos no Microsoft Planner e canais no Microsoft Teams.
-
Endpoint:
POST https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
Body: { client_id: "client_id", scope: "https://graph.microsoft.com/.default", client_secret: "client_secret", grant_type: "client_credentials" } Headers: { Content-Type: "application/x-www-form-urlencoded" }
$Body = @{ client_id = "client_id" scope = "https://graph.microsoft.com/.default" client_secret = "client_secret" grant_type = "client_credentials" } $Headers = @{ Content-Type = "application/x-www-form-urlencoded" } $response = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -Method POST -Body $Body -Headers $Headers $access_token = $response.access_token
- Obtém um token de acesso para autenticar e autorizar as chamadas às APIs do Microsoft Graph.
- O token é utilizado no cabeçalho de autorização das chamadas às APIs do Microsoft Graph.
- É obtido utilizando o fluxo de concessão de credenciais de cliente (client credentials grant).
- Tem um tempo de expiração e deve ser renovado periodicamente.
- É necessário para chamar as APIs do Microsoft Graph.
-
Endpoint:
POST https://graph.microsoft.com/v1.0/planner/plans
Body: { owner: "group-id", title: "Plano de Projeto" } Headers: { Authorization: "Bearer { access_token }", Content-Type: "application/json" }
$Body = @{ owner = "group-id" title = "Plano de Projeto" } $Headers = @{ Authorization = "Bearer $access_token" Content-Type = "application/json" } New-MgPlannerPlan -BodyParameter $Body -Headers $Headers
- Cria um novo plano no Microsoft Planner associado a um grupo específico do Microsoft 365.
- O plano é criado com o título especificado e o grupo é definido como proprietário.
- O plano é criado com um conjunto padrão de buckets.
-
Endpoint:
https://graph.microsoft.com/v1.0/teams/{teamId}/channels
Body: { displayName: "Novo Canal" } Headers: { Authorization: "Bearer { access_token }", Content-Type: "application/json" }
-
Exemplo PowerShell:
$Body = @{ displayName = "Novo Canal" } $Headers = @{ Authorization Content-Type = "application/json" } New-MgTeamChannel -TeamId $teamId -ChannelDisplayName "Novo Canal"
- Cria um novo canal em um time do Microsoft Teams com o nome especificado.
- Endpoint:
POST https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}/tabs
Body:
{
name: "Planner",
displayName: "Planner",
"teamsapp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.planner",
configuration: {
contentUrl: "https://tasks.teams.microsoft.com/...",
removeUrl: "https://tasks.teams.microsoft.com/...",
websiteUrl: "https://tasks.office.com/..."
}
}
Headers:
{
Authorization: "Bearer { access_token }",
Content-Type: "application/json"
}
- Exemplo PowerShell:
$params = @{
name = "Escopo de Projeto"
displayName = "Escopo de Projeto"
"teamsapp@odata.bind" = "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.planner"
configuration = @{
contentUrl = "https://tasks.teams.microsoft.com/teamsui/{tid}/Home/PlannerFrame?page=7&auth_pvr=OrgId&auth_upn={userPrincipalName}&groupId={groupId}&planId=$($plan.id)&channelId={channelId}&entityId={entityId}&tid={tid}&userObjectId={userObjectId}&subEntityId={subEntityId}&sessionId={sessionId}&theme={theme}&mkt={locale}&ringId={ringId}&PlannerRouteHint={tid}"
removeUrl = "https://tasks.teams.microsoft.com/teamsui/{tid}/Home/PlannerFrame?page=13&auth_pvr=OrgId&auth_upn={userPrincipalName}&groupId={groupId}&planId=$($plan.id)&channelId={channelId}&entityId={entityId}&tid={tid}&userObjectId={userObjectId}&subEntityId={subEntityId}&sessionId={sessionId}&theme={theme}&mkt={locale}&ringId={ringId}&PlannerRouteHint={tid}"
websiteUrl = "https://tasks.office.com/{tid}/Home/PlanViews/$($plan.id)?Type=PlanLink&Channel=TeamsTab"
}
}
$CreatedTab = New-MgTeamChannelTab -TeamId $GroupID -ChannelId $ChannelID -BodyParameter $params
- Adiciona um canal como uma nova aba em um time do Microsoft Teams.
Endpoint:
PATCH https://graph.microsoft.com/v1.0/planner/tasks/{taskId}/details
Atualiza os detalhes de uma tarefa específica no Microsoft Planner.
Update-MgPlannerTaskDetail -PlannerTaskId $taskId -BodyParameter @{ description = "Novos detalhes da tarefa" previewType = "description" }
Endpoint:
GET https://graph.microsoft.com/v1.0/teams/{teamId}
Obtém os detalhes de um time específico do Microsoft Teams.
Get-MgTeam -TeamId $teamId
Endpoint:
GET https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}
Obtém os detalhes de um canal específico em um time do Microsoft Teams.
Get-MgTeamChannel -TeamId $teamId -ChannelId $channelId
Esta documentação lista as principais APIs do Microsoft Graph utilizadas no projeto para facilitar a automação de tarefas de gerenciamento de projetos utilizando o Planner e o Teams.