gpt4 book ai didi

youtube-api - Google API V3 OAUTH2 挂起 - 未创建 TokenResponse 用户凭据文件

转载 作者:行者123 更新时间:2023-12-02 03:34:21 25 4
gpt4 key购买 nike

Google API V3 OAUTH2 问题报告

下面的 GoogleWebAuthorizationBroker.AuthorizeAsync 代码在我的 Windows 8.1 上运行良好。当我在我的 Windows 7 PC 上安装并运行 EXE 时,AuthorizeAsync 被执行,浏览器打开,我点击选择一个帐户页面这个应用想要: 页面,然后在短时间内看到一个页面,上面写着 已收到验证码。正在关闭... ..\AppData\Roaming\Google.Apis.Auth 文件夹中没有保存 TokenResponse-user 文件,我的 EXE 挂起(永远等待)。我已尝试使用 Chrome 和 Internet Explorer 浏览器。

在 Windows 8.1 PC 上运行良好,但在 Windows 7 PC 上挂起。我尝试了两台不同的 Windows 7 PC。所有 PC 上都使用了相同的客户端 ID/密码和相同的 Google 用户名/密码。

我应该在我的代码中做一些不同的事情吗?或者这是 Google API V3 客户端库的问题吗?

Private Async Function GetGredentials() As Task
OAUth2Credential = Await GoogleWebAuthorizationBroker.AuthorizeAsync( _
New ClientSecrets With {.ClientId = Google_ClientID, .ClientSecret = Google_ClientSecret}, _
{YouTubeService.Scope.Youtube}, "user", CancellationToken.None)
End Function

我电脑上的版本:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Google.Apis" version="1.8.2" targetFramework="net40" />
<package id="Google.Apis.Auth" version="1.8.2" targetFramework="net40" />
<package id="Google.Apis.Core" version="1.8.2" targetFramework="net40" />
<package id="Google.Apis.YouTube.v3" version="1.8.1.1080" targetFramework="net40" />
<package id="log4net" version="2.0.3" targetFramework="net40" />
<package id="Microsoft.Bcl" version="1.1.9" targetFramework="net40" />
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net40" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net40" />
<package id="Microsoft.Net.Http" version="2.2.22" targetFramework="net40" />
<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net40" />
<package id="Zlib.Portable" version="1.10.0" targetFramework="net40" />
</packages>

Chrome 历史记录显示了这一点,但 Google.Apis.Auth 文件夹中没有文件:

9:50 AM OAuth 2.0 Authentication Token Received localhost
9:50 AM Request for Permission accounts.google.com

最佳答案

我找到了解决办法。以下是我得出解决方案的方法。

我决定尝试将 Google.Apis.Auth.OAuth2.Responses.TokenResponse-user 从我的 Windows 8.1 PC 复制到我的 Windows 7 PC,看看刷新 token 文件是否可行因为第一次创建 token 文件不起作用。刷新确实有效。 GoogleWebAuthorizationBroker.AuthorizeAsync 刷新了 token 文件并正确退出回到我的 EXE 程序。

但是,另一个问题浮出水面。

在我的 EXE 程序的下一步中,在执行 ChannelsResource.ListRequest 时,我收到了这个错误消息框:

Could not load type 'System.Net.HttpStatusCode' from assembly 'System.Net, Version 4.0.9.9, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

搜索显示其他人也看到了同样的错误,并被建议安装 Microsoft .NET Framework 4.0 更新 KB2468871。我这样做了,现在我的 ChannelsResource.ListRequest 正确执行了。

我删除了 Google.Apis.Auth.OAuth2.Responses.TokenResponse-user token 文件并重新运行我的 EXE 程序执行 GoogleWebAuthorizationBroker.AuthorizeAsync 以创建一个新的 token 文件。这次它工作正常。

我的结论是同样的 Could not load type 'System.Net.HttpStatusCode' exception occurred during the execution of GoogleWebAuthorizationBroker.AuthorizeAsync 但它没有被捕获和报告.

Google API V3 文档

应将以下先决条件要求添加到 Google API V3 文档中:

安装 Microsoft .NET Framework 4.0 更新 KB2468871 ( http://www.microsoft.com/en-us/download/details.aspx?id=3556 )

N.B. 后来,在遇到另一个问题后,我发现 Windows 7 PC 没有从 Windows Update 获得所有最新更新。使用 Windows 更新获取所有更新解决了 System.InvalidOperationException in MSCORLIB when Google API V3 .UploadAsync is called 中记录的问题

更多信息

我必须手动将以下从 NuGet 安装在项目文件夹中的文件添加到 InstallShield LE 安装项目的 文件 选项卡中,以便将它们复制到目标系统。由于某种原因,InstallShield LE 安装项目没有自动添加这些文件。它添加了所有其他的。

System.Net.Http.dll
System.Net.Http.WebRequest.dll
System.Runtime.dll
System.Threading.Tasks.dll

关于youtube-api - Google API V3 OAUTH2 挂起 - 未创建 TokenResponse 用户凭据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642877/

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