Вызов API Google с сервисной учетной записью c # - PullRequest
1 голос
/ 24 июня 2019

У меня возникла следующая проблема: я создал учетную запись службы Google и сейчас пытаюсь сделать авторизованный вызов API с помощью c # для API Google и API данных YouTube.Вот мой пример кода:

string filePath = @"~\my-path\Default-GASvcAcct-508d097b0bff.json"

using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
    googleCredential = GoogleCredential.FromStream(stream);
}

if (googleCredential.IsCreateScopedRequired)
{
    googleCredential.CreateScoped(
        new string[] 
        {
            YouTubeService.Scope.YoutubeReadonly,
            YouTubeService.Scope.YoutubeUpload,
            YouTubeService.Scope.Youtube,
            YouTubeService.Scope.YoutubeForceSsl,
            YouTubeService.Scope.Youtubepartner,
            YouTubeService.Scope.YoutubepartnerChannelAudit
        });
}

YouTubeService service = new YouTubeService(new BaseClientService.Initializer()
{
    HttpClientInitializer = googleCredential,
});

service.Videos.List()

Код строится успешно, но когда я запускаю программу, я получаю следующее сообщение об ошибке:

System.IO.FileNotFoundException: 'Couldне загружать файл или сборку 'BouncyCastle.Crypto, версия = 1.7.4137.9688, культура = нейтральная, PublicKeyToken = a4292a325f69b123' или одна из ее зависимостей.Система не может найти указанный файл. '

Кто-нибудь знает, как исправить эту ошибку, а также можно ли сделать запрос к API данных YouTube с учетными данными учетной записи службы?

Заранее спасибо!

1 Ответ

0 голосов
/ 25 июня 2019

Обновление:

Согласно комментарию Джона Скита, если вы обновите ньюдж Google API, вы больше не будете зависеть от натива BouncyCastle.Crypto, так что это тоже вариант.

Оригинальный ответ:

Я не могу доказать однозначно, но кажется, что nuget BouncyCastle.Crypto не подходит для .NET 4.0.

Вы можетеЯ вижу, что nuget пытается сделать переносимость.

И я также думаю, что существует версия pre-release , которая должна быть совместима с .NET 4.0:

Nuget Package browser

...