我可以按照此链接中的说明获取RefreshToken:How do I authorise a background web app without user intervention? (canonical ?)。
现在我需要user credential
来获取driveservice object
。我搜索了很多,但无法找到确切的解决方案。
我可以使用以下链接的ClientId
和ClientSecret
来获取访问令牌:Using OAuth 2.0 for Web Server Applications - offline。
但之后我怎样才能user credential
使用AccessToken
?或者使用刷新令牌获取credential
的任何直接方法。任何例子或建议。
谢谢!
答案 0 :(得分:1)
您可能希望尝试使用Client Lib而不是它。您需要做的就是运行以下代码一次。刷新令牌将由FileDataStore
创建并存储在%appData%
目录中。它下次运行它不会提示您进行身份验证,因为它已经拥有它。您还可以创建自己的iDataStore
实现,以便将刷新令牌存储在您喜欢的位置。我喜欢当前目录LocalFileDatastore.cs。
//Scopes for use with the Google Drive API
string[] scopes = new string[] { DriveService.Scope.Drive,
DriveService.Scope.DriveFile};
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
UserCredential credential =
GoogleWebAuthorizationBroker
.AuthorizeAsync(new ClientSecrets { ClientId = CLIENT_ID
, ClientSecret = CLIENT_SECRET }
,scopes
,"SingleUser"
,CancellationToken.None
,new FileDataStore("Daimto.GoogleDrive.Auth.Store")
).Result;
代码从Google Drive API C#教程中删除。