我下载并编译了官方Google's API for .Net成功删除了一些不兼容的引用项目(移动WP81项目)。
现在,我正在尝试开始使用该 API 的第一步,我正在遵循 YouTube API 的官方示例,我遇到的大问题是我无法重现该示例,因为这些命名空间丢失...所以我无法导入它们:
Imports Google.Apis.Authentication
Imports Google.Apis.Authentication.OAuth2
Imports Google.Apis.Authentication.OAuth2.DotNetOpenAuth
Imports Google.Apis.Samples.Helper
Imports Google.Apis.Youtube.v3
Imports Google.Apis.Youtube.v3.Data
这些是我在项目中编译和引用的程序集:
Google.Apis.Auth.dll
Google.Apis.Auth.PlatformServices.dll
Google.Apis.Core.dll
Google.Apis.dll
Google.Apis.PlatformServices.dll
加上这些外部依赖项:
BouncyCastle.Crypto.dll
log4net.dll
Newtonsoft.Json.dll
Zlib.Portable.dll
我缺少什么?
我认为存在两个问题,第一是示例似乎很旧,因为命名空间
Google.Apis.Authentication
似乎已更改为Google.Apis.Auth
,但是,我仍然找不到这些等效的命名空间:
Google.Apis.Authentication.OAuth2.DotNetOpenAuth
Google.Apis.Samples.Helper
Google.Apis.Youtube.v3
Google.Apis.Youtube.v3.Data
第二个问题,似乎我需要下载额外的 Google 库/依赖项才能获取 YouTube API,然后才能看到 YouTube 命名空间,我想是这样,但我不知道在哪里下载。
注意:此解决方案已经过尝试和测试
首先也是最重要的一点,我自己并没有去 Github 获取
.Net
的 API。一个原因(至少对我来说通常是一个问题)是因为试图找出依赖关系等。考虑到这一点,我建议使用 NuGet 并使用 Package Manager Console
。原因很简单,你不必必须担心编译源代码、与其他库的引用问题、依赖项等...
我如何让它发挥作用?
请按照以下步骤操作,因为不仅让
API
实际工作,而且我确实发现您上面提供的官方示例存在更多问题(不是您的错)。我相信它是新版本中的更改,特别是 YouTubeService
类。还没有太多时间来解决这个问题,也没有向他们报告,但这是 await
和 ExecuteAsync
的问题……无论如何,让我们开始工作吧。
Visual Studio Ouput Window
中打印信息。保存该项目并运行至少一次;在将 bin\debug
用于 Package Manager
之前创建您需要的 NuGet
目录。Tools --> NuGet Package Manager --> Package Manager Console
。NuGet
,抓住它这里此时,只需重新构建并运行您的程序即可。此时一切都应该很好。
这就是我已经解决的你的实际问题
现在谈谈我使用提供的(官方)示例遇到的问题。
client_secrets.json
,您可以通过 开发者控制台 来完成此操作。下载 json
文件并将其放入您的 bin\debug
目录中。您可以担心稍后将其放置在其他地方......在该示例中找到以下代码:
// Retrieve the contentDetails part of the channel resource for the authenticated user's channel.
var channelsListResponse = await channelsListRequest.ExecuteAsync();
您需要删除:
await
关键字和ExecuteAsync()
到:Execute()
。这是我遇到的问题,这让我很痛苦。它会执行,但我从来没有收到回复,从来没有,从来没有......直到我删除上面列出的并替换它们。
// Retrieve the list of videos uploaded to the authenticated user's channel.
var playlistItemsListResponse = await playlistItemsListRequest.ExecuteAsync();
您需要对这一行执行与我上面所说的相同的操作。完成后,您应该能够运行应用程序并返回结果。
我希望你能像我一样觉得这篇文章很有用并且能让你感到轻松。另外,正如我提到的,尚未向 Google 报告
ExecuteAsync
问题。我希望有人报告此问题,以便解决和修复它。
快乐编码!
参考等待