Я хочу иметь возможность использовать API-интерфейс Graph для получения списка каналов и команд, а затем отправить приложение на соответствующий канал без необходимости взаимодействия пользователя с командами MS. Оглядываясь вокруг, я вижу много сообщений о том, что это пока невозможно, но Monday.com и Smartsheet , похоже, делают это. Monday.com даже указывает, что он использует бета-API, а , ни не используют коннекторы.
Я попытался использовать API POST /teams/{id}/channels/{id}/messages
после аутентификации, используя способ , показанный в этой документации.
Первый вызов для adminconsent
https://login.microsoftonline.com/organizations/v2.0/adminconsent?&client_id={botID}&response_type=code&redirect_uri=https://myoauthCallback&scope=offline_access User.ReadWrite.All Group.ReadWrite.All
После того, как это вернулось, я немедленно звоню, чтобы получить токен доступа, указанный выше вызов не кажется, что возвращает все, что мне нужно поместить в этот запрос.
POST => /organizations/oauth2/v2.0/token
body = client_id={botId}&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret={secret}&grant_type=client_credentials
Я установил разрешения в https://portal.azure.com/#blade/
для бота, чтобы иметь та же область, что и в первом запросе выше. Здесь ему не нравится объем, переданный таким же образом, поэтому я устанавливаю его на default
, затем я беру access_token
, который возвращается, и пытаюсь вызвать POST
сообщение на канал .
URL: /teams/{TEAM_ID}/channels/{CHANNEL_ID}/messages
body: {
subject: 'test subj',
body: { contentType: 'text', content: 'Test message from app' },
}
Это приводит к ошибке
statusCode: 401, code: 'UnknownError', message: ''
Итак Как получить те же функции этих других приложений, чтобы я мог отправлять сообщения непосредственно командам без настройки соединителя?