我正在尝试google drive api来做基本的上传/下载/列表文件。但我不知道如何通过身份验证。
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets{ClientId = clientId, ClientSecret = clientSecret},
, scopes
, userName
, CancellationToken.None
, new FileDataStore("Drive.Auth.Store")).Result;
我看过各种SO帖子,我尝试添加和javascript来源并在google开发者控制台中将{uri}重定向为http://localhost
或http://localhost/google_oauth2/callback
。或者是网址应该是我的驱动网址吗?
我对重定向uri有点困惑。 AFAIU,这个oauth代码将帮助我访问我的谷歌驱动器,因为我的电子邮件ID已在开发控制台中使用此应用程序注册并生成了密码。所以我没有服务器,只有我的本地主机。
很抱歉,如果这个问题很愚蠢,但我还在学习auth机制。如果有人能纠正我,将会有很大帮助。
答案 0 :(得分: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);
}
您还需要为应用指定开放网址,以及用户如何使用应用创建和打开文件的偏好设置。开放网址需要记住两件重要的事情:
localhost
不起作用。关于重定向URI,它是应用程序的回调入口点。请求中指定的重定向URI确定授权代码如何返回到您的应用程序。例如,在最终用户接受权限后,必须调用“重定向URI”才能返回应用程序。此外,重定向URI应该与应用的初始入口点不同。您可以阅读文档here。