C# Skype Bot скачать приложение - PullRequest
0 голосов
/ 06 января 2020

Я занимаюсь разработкой бота для Skype в C# с Bot Framework, и я хотел бы скачать вложение, отправленное пользователями, я использую webclient для загрузки файла, он работает нормально с локальным эмулятором BOT, но не могу работая через скайп BOT, получая ниже исключения,

System. Net .WebException: удаленный сервер возвратил ошибку: (401) Unauthorized.

Даже я пытался с учетными данными веб-клиента тоже.

Мой фрагмент кода:

var webclient = new WebClient()

webclient.Credentials = new System.Net.NetworkCredential(userName, passWord);
webclient.DownloadFile(remoteFileUrl, localFileName);

Помимо учетных данных, что-нибудь нужно указать? Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 06 января 2020

В дополнение к ответу, приведенному выше, URL-адреса вложений Skype и Microsoft Teams защищены JwtToken, и вы должны установить JwtToken вашего бота в качестве заголовка авторизации для запроса HTTP GET, который ваш бот инициирует для получения контента. Вы должны быть осторожны при отправке JwtToken бота на сторонний сервер и всегда должны отправлять его доверенным сторонам.

Чтобы загрузить фактическое вложение:

 using (var webClient = new WebClient())
    {
        if (!string.IsNullOrWhiteSpace(channelToken))
        {
            webClient.DefaultRequestHeaders.Authorization = 
                new AuthenticationHeaderValue("Bearer", channelToken);
        }

        webClient.DownloadFile(remoteFileUrl, localFileName);
    }
0 голосов
/ 06 января 2020

Предполагается, что файл был отправлен с клиента Skype, файл находится на сервере Skype.

Для использования файла вам понадобится аутентифицированный токен Skype, который вы можете получить из запроса, отправленного Skype.

Пожалуйста, обратитесь к следующему: Как читать содержимое вложения из фреймворка бота C#?

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