gpt4 book ai didi

c# - 如何开始使用 Google API v3?

转载 作者:行者123 更新时间:2023-11-30 23:28:10 26 4
gpt4 key购买 nike

我下载编译了官方 Google's API for .Net 成功删除了一些不兼容的引用项目(Mobile WP81 项目)。

现在,我正在尝试开始使用 API 的第一步,我正在遵循 official examples 的 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。原因很简单,您不必担心编译源代码、其他库的引用问题、依赖项等...

How Did I get It To Work?

请按照这些步骤操作,因为不仅要使 API 实际工作,而且我确实发现您上面提供的官方示例存在更多问题(不是您的错误)。我相信它在新版本中发生了变化,特别是 YouTubeService 类。没有太多时间解决这个问题,也没有时间向他们报告,但这是 awaitExecuteAsync 的问题...无论如何让我们开始工作。

  1. 获得至少 4.5 的新 C# 项目;我做了一个 C# 表单应用程序。您引用的那个是控制台,但仍会在 Visual Studio 输出窗口 中打印出信息。保存这个项目并至少运行一次;在使用 NuGetPackage Manager 之前创建您需要的 bin\debug 目录。
  2. 转到 工具 --> NuGet 包管理器 --> 包管理器控制台
  3. 加载后,复制并粘贴:Install-Package Google.Apis.YouTube.v3,然后按回车键下载包。您会看到它下载了所有内容,应该可以开始了。你会注意到你的项目下有一个新文件:packages.config,它与这个包有关,不要删除它。这里还有那个 NuGet 的链接,捕获它 HERE

此时,只需重新构建并运行您的程序即可。此时一切都应该很好。

这是我已解决的您的实际问题

现在谈谈我使用提供的(官方)示例遇到的问题。

  1. 首先您需要获取client_secrets.json,您可以通过Developer Console 来实现。 .下载 json 文件并将其放在 bin\debug 目录中。你可以担心以后把它放在别处......
  2. 在该示例中找到以下代码:

    //检索经过身份验证的用户 channel 的 channel 资源的 contentDetails 部分。
    var channelsListResponse = await channelsListRequest.ExecuteAsync();

您需要删除:await 关键字和 ExecuteAsync() 到:Execute()。这是我遇到的问题,这让 a$$ 很痛苦。它会执行,但我从来没有收到回复,从来没有,从来没有……直到我删除上面列出的并替换它们。

  1. 还有一个地方需要修改。请看下面...

//检索上传到经过身份验证的用户 channel 的视频列表。
var playlistItemsListResponse = await playlistItemsListRequest.ExecuteAsync();

你需要像我上面说的那样对这条线做同样的事情。完成后,您应该能够运行应用程序并返回结果。

我希望你能像我一样觉得这很有用并且能减轻压力。另外正如我所提到的,尚未向 Google 报告有关 ExecuteAsync 问题。我希望有人报告此问题,以便解决和修复。

编码愉快!

等待引用

enter image description here

关于c# - 如何开始使用 Google API v3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36139569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com