как отправить сообщение в канал Team через приложение Daemon - PullRequest
0 голосов
/ 11 апреля 2020

Я хочу отправить сообщение на канал Team без пользователя из внешнего приложения через HTTP-вызов. Поэтому для этого я создал приложение, как описано здесь

Теперь я написал JAVA код для отправки сообщения, как предлагается здесь: введите описание ссылки здесь Но, похоже, что невозможно отправить сообщение через HTTP-вызов из-за разрешения Тип приложения не поддерживается. Я получаю 401

     URL url = new URL("https://graph.microsoft.com/beta/teams/<tanentid>/channels/<channelid>/messages");

JSONObject obj = new JSONObject();
obj.put("content", "Hello world");
JSONObject mainobj = new JSONObject();
mainobj.put("body", obj);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer " + accessToken);
conn.setRequestProperty("Accept","application/json");
conn.addRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String postBody = mainobj.toString();
conn.getOutputStream().write(postBody.getBytes());

int httpResponseCode = conn.getResponseCode();
if(httpResponseCode == 200) {
    BufferedReader in = null;
    StringBuilder response;
    try{
        in = new BufferedReader(
                new InputStreamReader(conn.getInputStream()));
        String inputLine;
        response = new StringBuilder();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
    } finally {
        in.close();
    }
    return response.toString();
} else {
    return String.format("Connection returned HTTP code: %s with message: %s",
            httpResponseCode, conn.getResponseMessage());
}

Этот HTTP-вызов работает нормально: https://graph.microsoft.com/beta/teams/{id}/channels

1) Возможно ли это как-то? 2) Если нет, то Бот может отправлять сообщения на основе ввода из внешнего приложения через HTTP-вызов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...