Introdução à CLI (interface de linha de comando) do Microsoft Graph
Neste tópico, você usará a CLI (interface de linha de comando) do Microsoft Graph para executar algumas tarefas básicas. Se você ainda não instalou a CLI, faça isso antes de seguir este guia.
Versão da API
A CLI do Microsoft Graph usa a API REST do Microsoft Graph v1.0.
Autenticação
A CLI do Microsoft Graph dá suporte a dois tipos de autenticação: acesso delegado e acesso somente aplicativo. Neste tópico, você usará o acesso delegado para entrar como usuário, conceder consentimento à CLI para agir em seu nome e chamar o Microsoft Graph.
Para obter detalhes sobre como usar o acesso somente ao aplicativo para cenários autônomos, confira Usar autenticação somente aplicativo com a CLI (interface de linha de comando) do Microsoft Graph.
Determinar escopos de permissão necessários
Cada API no Microsoft Graph é protegida por um ou mais escopos de permissão. A entrada do usuário deve consentir com um dos escopos necessários para as APIs que você planeja usar. Este exemplo usa as seguintes APIs:
- Fazer com que o usuário localize a ID do usuário conectado
- List joinedTeams para obter o Teams do qual o usuário é membro.
- Liste canais para obter os canais em uma Equipe.
- Envie uma mensagem para enviar uma mensagem a um canal da Equipe.
Os User.Read
escopos , Team.ReadBasic.All
, Channel.ReadBasic.All
e ChannelMessage.Send
permissão habilitam essas chamadas.
Entrar
Use o mgc login
comando para entrar com os escopos necessários.
mgc login --scopes User.Read Team.ReadBasic.All Channel.ReadBasic.All ChannelMessage.Send
O comando solicita que você acesse uma página da Web para entrar usando um código de dispositivo. Quando você faz isso, o comando é concluído. Você só precisa entrar uma vez por sessão.
Dica
Você pode adicionar permissões adicionais repetindo o mgc login
comando com os novos escopos de permissão.
Chamar o Microsoft Graph
Agora que você está conectado, você pode começar a fazer chamadas para o Microsoft Graph.
Observação
Algumas solicitações de recursos Microsoft Entra exigem o uso de recursos avançados de consulta. Se você receber uma resposta indicando uma solicitação ruim, uma consulta sem suporte ou uma resposta que inclua resultados inesperados, incluindo o parâmetro de consulta e ConsistencyLevel
o $count
cabeçalho podem permitir que a solicitação tenha êxito. Para obter detalhes e exemplos, confira Recursos de consulta avançados em objetos de diretório.
Obter o usuário conectado
Nesta seção, você localizará o usuário conectado e obterá a ID do usuário. Você precisará disso para usar como parâmetro para os outros comandos que você usará posteriormente. Comece executando o comando a seguir. Substitua <your-display-name>
pelo nome de exibição do usuário conectado.
mgc users list --filter "displayName eq '<your-display-name>'"
Esse comando gera uma representação JSON do usuário conectado.
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
"value": [
{
"businessPhones": [
"\u002B1 412 555 0109"
],
"displayName": "Megan Bowen",
"givenName": "Megan",
"jobTitle": "Marketing Manager",
"mail": "MeganB@contoso.com",
"mobilePhone": null,
"officeLocation": "12/1110",
"preferredLanguage": "en-US",
"surname": "Bowen",
"userPrincipalName": "MeganB@contoso.com",
"id": "4db673f0-3c2a-4d45-a9d9-3a4a8c63af6e"
}
]
}
Você pode usar um parâmetro de consulta OData para personalizar a resposta. Por exemplo, para solicitar apenas o nome de exibição do usuário, você pode usar a opção --select
.
mgc users get --user-id <user-id> --select displayName
Listar as equipes unidas do usuário
Agora, use o mgc me joined-teams list
comando para listar as equipes ingressadas do usuário.
mgc users joined-teams list --user-id <user-id> --select displayName,id
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams(displayName,id)",
"@odata.count": 5,
"value": [
{
"id": "ab41a24e-ed63-4725-abb7-d22f90a4fdc3",
"displayName": "Sales and Marketing"
},
{
"id": "6520aa84-f197-489c-b79e-a2614a5a2ad0",
"displayName": "Mark 8 Project Team"
},
{
"id": "e7bc29ba-7794-4df9-8f35-fce723b15fe4",
"displayName": "Retail"
},
{
"id": "22cf3814-dbef-4eb0-abe3-759b320b7d76",
"displayName": "Digital Initiative Public Relations"
},
{
"id": "76708e21-b4ad-431e-9394-4ee7536d17bf",
"displayName": "U.S. Sales"
}
]
}
Selecione uma das equipes ingressadas do usuário e copie seu id
.
Listar canais de equipe
Agora, use a ID da equipe como um parâmetro para o mgc teams channels list
comando.
mgc teams channels list --team-id ab41a24e-ed63-4725-abb7-d22f90a4fdc3 --select displayName,id
{
"@odata.context":
"https://graph.microsoft.com/v1.0/$metadata#teams(\u0027ab41a24e-ed63-4725-abb7-d22f90a4fdc3\u0027)/channels(displayName
,id)",
"@odata.count": 2,
"value": [
{
"id": "19:9194c1a65d9c478fa0dc1d5cd5bdf18a@thread.tacv2",
"displayName": "Monthly Reports"
},
{
"id": "19:YlJvOa8M094qgkEgjJR7l6AogKx9jDsLpuXsl7O8Ft81@thread.tacv2",
"displayName": "General"
}
]
}
Selecione um dos canais e copie seu id
.
Enviar uma mensagem
Agora que você tem a ID da equipe e a ID do canal, você pode postar uma mensagem no canal. Use o comando a seguir para enviar a mensagem.
mgc teams channels messages create --team-id ab41a24e-ed63-4725-abb7-d22f90a4fdc3 --channel-id 19:YlJvOa8M094qgkEgjJR7l6AogKx9jDsLpuXsl7O8Ft81@thread.tacv2 --body '{"body": {"content": "Hello world!"}, "importance": "urgent"}'
Esse comando difere dos comandos anteriores usados. Em vez de consultar dados, ele está realmente criando algo. No Microsoft Graph, esse comando se traduz em um HTTP POST
e requer um objeto no corpo dessa postagem. Nesse caso, o objeto é um chatMessage. O --body
parâmetro aceita uma representação JSON de um chatMessage
.
Sair
Use o mgc logout
comando para sair.
mgc logout