我遇到以下问题:我创建了一个google服务帐户,现在我正尝试使用c#对Google API和YouTube Data API进行授权的API调用。这是我的示例代码:
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:'无法加载文件或程序集 'BouncyCastle.Crypto,版本= 1.7.4137.9688,文化=中性, PublicKeyToken = a4292a325f69b123'或其依赖项之一。的 系统找不到指定的文件。'
有人知道如何解决此错误,并且是否可以使用服务帐户凭据向YouTube数据API发出请求?
谢谢!
答案 0 :(得分:0)
更新:
根据Jhon Skeet的评论,如果更新Google API nuget的内容,则将不再依赖BouncyCastle.Crypto nuget,因此这也是一个选择。
原始答案:
我不能明确证明,但似乎BouncyCastle.Crypto
不适合nuget。
您会发现有nuget试图实现可移植性。
我还认为有一个预发行版版本应与.NET 4.0
兼容: