Проблема, чтобы получить / создать сообщение в канале - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь использовать Graph API с PowerShell (/ команды / {ID} / каналы / {ID} / сообщения) Для этого у меня есть приложение azure с разрешениями API (делегированные и приложения) "Group.ReadWrite .Все и некоторые другие. Моя учетная запись как администратор

Я получил свой токен правильно с этим

$Body = @{grant_type = "client_credentials"; resource = "https://graph.microsoft.com"; client_id = 
$ClientID; client_secret = $secret; username = $SPLogin; password = $encpassword }

$res = Invoke-RestMethod -Method Post -Uri "https://login.microsoftonline.com/$TenantId/oauth2/token?api-version=1.0" -Body $bodyStr -Headers $head

$headerUser = @{"Authorization" = "Bearer " + $res.access_token }; 

Вот что я получил в качестве токена

token_type     : Bearer
expires_in     : 3599
ext_expires_in : 3599
expires_on     : 1583338248
not_before     : 1583334348
resource       : https://graph.microsoft.com
access_token   : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Когда у меня есть мой токен правильно, я сначала пытаюсь получить все сообщения в канале (https://docs.microsoft.com/en-us/graph/api/channel-list-messages?view=graph-rest-beta&tabs=http)

$apiUrl = "https://graph.microsoft.com/beta/teams/$groupID/channels/$chanelID/messages" 
$myPostedMsg = Invoke-RestMethod -Headers $headerUser -Uri $apiUrl -Method Get

К сожалению, он не работает должным образом и имеет эту ошибку

Invoke-RestMethod : {
"error": {
"code": "UnknownError",
"message": "",
"innerError": {
  "request-id": "4cd0e36f-2e0c-4712-b613-bcc350595aee",
  "date": "2020-03-04T15:12:53"
    }
  }
}
At line:1 char:16
+ ... PostedMsg = Invoke-RestMethod -Headers $headerUser -Uri $apiUrl  -Met ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke- 
RestMethod], WebException
+ FullyQualifiedErrorId : 
WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

У меня та же проблема, если я пытаюсь отправить сообщение

$body = "{
        ""body"": {
          ""content"": ""Ceci est un message"",
          ""subject"":""Subject"",
          ""contentType"":""html""
        }
      }"

    $apiUrl = "https://graph.microsoft.com/beta/teams/$groupID/channels/$chanelID/messages" 
    $myPostedMsg = Invoke-RestMethod -Headers $headerUser -Uri $apiUrl -Body $body -Method Post -ContentType "application/json"

Если у кого-то уже была эта проблема

1 Ответ

0 голосов
/ 05 марта 2020

Некоторые API в командах "защищены". Вам необходимо заранее запросить доступ у Microsoft => Защищенный Apis в Microsoft Teams

...