使用youtube api v3继续获取错误:redirect_uri_mismatch

Iro*_*ide 8 c# youtube google-api oauth-2.0

嗨,我希望有人可以帮助我.

我在本地计算机上有一个Web应用程序(asp.net),我正在尝试使用此示例将视频上传到YouTube https://developers.google.com/youtube/v3/code_samples/dotnet#upload_a_video

当我尝试上传视频时,我在Google控制台中为Web应用程序设置了客户端ID和密码,打开浏览器选项卡以选择我的一个Google帐户,一旦我输入,我获取redirect_uri_mismatch,该页面上的响应详细信息如下:

cookie_policy_enforce=false
scope=https://www.googleapis.com/auth/youtube.upload
response_type=code
access_type=offline
redirect_uri=http://localhost:55556/authorize/
pageId=[some page id removed here for security reasons]
display=page
client_id=[some unique id removed here for security reasons].apps.googleusercontent.com
Run Code Online (Sandbox Code Playgroud)

一个有趣的事情是,它与redirect_uri=http://localhost:55556/authorize/ Google控制台中设置的完全不同,而client_secrets.json中的设置也与我每次收到端口号更改的错误页面完全不同.

redurect网址和来源在Google控制台中设置如下我想我已添加所有组合以防万一:

授权重定向URI

http://localhost/
https://localhost/
http://localhost:50169/AddContent.aspx
https://localhost:50169/AddContent.aspx
http://localhost:50169
Run Code Online (Sandbox Code Playgroud)

授权的JavaScript起源

http://localhost/
https://localhost/
http://localhost:50169/
https://localhost:50169/
Run Code Online (Sandbox Code Playgroud)

我不确定为什么错误页面上的redirect-uri与我在Google控制台中指定的任何授权重定向URI都不匹配?有任何想法吗 ?

也有可能在Google控制台和我的代码中正确设置了所有内容,但这个错误是由其他东西触发的,例如我错过了我的管帐号上的一些设置?我没有进行任何设置更改,因为我不认为我必须更正?

小智 1

您应该查看创建授权 URI 的代码。您需要传递您在 Google 开发者控制台注册的重定向 URI 之一。我猜您正在使用一些 OAuth2 库,该库使用 localhost:port/authorize 作为默认重定向 URI。端口会发生变化,因为每次启动本地服务器时,它都会选择不同的端口号。要修复此问题,您应该在启动时指定一个端口号,例如 8080。然后您应该在 Google 开发者控制台中注册 localhost:8080/AddContent.aspx 并将其传递给您用于创建授权 URI 的任何库。