2016-02-04 158 views
0

我试着谷歌驱动器API做基本上传/下载/列表文件。但我不确定如何获得认证。谷歌驱动器OAuth给出错误:redirect_uri_mismatch在浏览器上

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets{ClientId = clientId, ClientSecret = clientSecret},                         
                           , scopes 
                           , userName 
                           , CancellationToken.None 
                           , new FileDataStore("Drive.Auth.Store")).Result; 

我见过各种SO职位,我已经尝试添加和JavaScript的起源,并在谷歌开发者控制台重定向URI作为http://localhosthttp://localhost/google_oauth2/callback。或者说,该网址应该是我的驱动器网址?

我有点与重定向uri混淆。 AFAIU,这个oauth代码将帮助我访问我的谷歌驱动器,因为我的电子邮件ID是在此应用程序的开发控制台中注册的,并且会生成秘密。所以我没有服务器,只是我的本地主机。

对不起,如果这个问题很愚蠢,但我仍然在学习认证机制。如果有人能改正我的话,会有很大的帮助。

回答

0

Google documentation中可以看出,对于您的应用程序发送到Drive API的每个请求,都必须包含授权令牌。令牌还可以识别您的应用程序到Google。您可以在此link中找到授权过程的详细信息。

这是一个sample code来管理授权。

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
         GoogleClientSecrets.Load(stream).Secrets, 
         Scopes, 
         "user", 
         CancellationToken.None, 
         new FileDataStore(credPath, true)).Result; 
        Console.WriteLine("Credential file saved to: " + credPath); 
       } 

您还需要指定应用程序的打开URL以及用户如何使用应用程序创建和打开文件的首选项。还有要记住的网址打开两个重要的事情:

  • 确保您打开URL给出一个完全合格的域名,localhost不起作用。
  • 该URL必须属于您。 app registration完成后,您将需要此网址的verify your ownership才能创建Chrome网上应用店列表。

关于重定向URI,它是应用程序的回调入口点。请求中指定的重定向URI决定授权代码如何返回给您的应用程序。例如,在最终用户接受权限后,必须调用“重定向URI”才能返回应用程序。此外,重定向URI应该与应用程序的初始入口点不同。您可以阅读文档here

+0

感谢您的回复。当你说完全合格时,ipaddress会工作吗?或者我必须创建一个HTML页面并将其用作重定向地址?另外,我选择的是Web应用程序,而不是控制台上安装的应用程序。我能够运行一个控制台应用程序。 – Atihska

相关问题