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

时间:2014-04-14 11:41:33

标签: c# youtube oauth-2.0 google-api

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

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

将视频上传到YouTube

我在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

一个有趣的事情是,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

授权的JavaScript来源

http://localhost/
https://localhost/
http://localhost:50169/
https://localhost:50169/

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

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

5 个答案:

答案 0 :(得分:3)

好的我相信根据这些帖子,YT API v3.0不再支持直接上传到网站所有者帐户。

Can YouTube Direct Upload to a Common Account for All Users?

How can I get the youtube webcam widget to upload to one account using API?

很遗憾,我想我需要托管用户在我的服务器上上传的视频。

但是,通过将此URI添加到开发者控制台中的重定向URI来修复原始问题

http://localhost/authorize/

Google OAuth 2 authorization - Error: redirect_uri_mismatch

答案 1 :(得分:2)

我通过将重定向URI设置为这样来实现它:

http://localhost:50517/signin-google

注意: - 它不适用于斜杠 - 端口号是您的视觉工作室分配的任何内容 - 我将JavaScript Origins设置为:

http://localhost:50517/

但是,如果某人真的在某处记录了这一点,那将会很好......

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我在尝试为Drive REST API设置quickstart应用时遇到了类似的问题。我一直收到redirect_uri_mismatch错误,并且该错误的端口号不断变化。我的修复方法是将Google Developers Console中的重定向URI更改为不包含端口号。

答案 4 :(得分:0)

有一种非常简单的方法可以解决这个问题,当我突然意识到这一点时,我就开始自欺欺人。

我正在使用“Web应用程序”凭据 - 您需要凭据管理器打开btw。

运行DotNet示例应用程序并打开浏览器(我获取“选择一个帐户”页面) - 然后在URL中查找由Google代码自动生成的重定向URI:

redirect_uri%3Dhttp://localhost:62041/authorize/

然后只需转到凭据管理器并将此URL添加到允许列表并保存。现在选择你的谷歌帐户,看看会发生什么 - 更新API需要几分钟 - 如果你得到重定向错误页面只需回击并再次选择你的帐户 - 最终它可以工作并返回到visual studio。

一旦帐户获得授权(清除bin目录以解锁它),这意味着您现在可以在代码中放置一个断点并查看凭证变量以获取刷新令牌,每个人都拼命地尝试以便你可以坚持帐户连接。