https://graph.microsoft.com/beta/teams/ ... /hostedCon палатки/aBDhbhfhbLWN1cv/$стоимость /"
Если вы попытаетесь получить доступ к этому URL-адресу, он скажет, что необходима аутентификация, поэтому я обнаруживаю каждый раз, когда пользователь отправляет сообщение, содержащее URL-адреса в этом формате, затем вызовите следующую функцию:
Код: Выделить всё
public async Task GetImageAsBase64(ILogger logger, string url)
{
AuthenticationHelper helper = new AuthenticationHelper(logger);
var token = await helper.GetTokenForAppAsync();
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
try
{
var imageBytes = await httpClient.GetByteArrayAsync(url);
return Convert.ToBase64String(imageBytes);
}
catch (Exception ex)
{
logger.LogError("Failed to get image as base64 from URL: {0} | ExceptionType={1} | Message={2} | StackTrace={3} | InnerException={4}", url, ex.GetType(), ex.Message, ex.StackTrace, ex.InnerException);
return "";
}
}
}
Код: Выделить всё
var imageBytes = await httpClient.GetByteArrayAsync(url);
Любая помощь приветствуется, спасибо за поддержку!
Я попробовал несколько повторных попыток и увеличил время между вызовами для определенного URL-адреса до 90 секунд. После трех повторных попыток он вернет пустую строку и зарегистрирует ошибку. Некоторые повторные попытки работают, другие нет.
Подробнее здесь: https://stackoverflow.com/questions/787 ... soft-graph