c# – Google Oauth错误:应至少设置一个客户机密码(已安装或Web
发布时间:2020-12-15 06:31:45 所属栏目:百科 来源:网络整理
导读:我使用Google的Oauth 2.0,通过我们的服务器将视频上传到Youtube. 我的客户端ID是一个“服务帐户”.我下载了json密钥并将其添加到我的解决方案中. 以下是相关代码: private async Task Run(string filePath) { UserCredential credential; var keyUrl = Syst
我使用Google的Oauth 2.0,通过我们的服务器将视频上传到Youtube.
我的客户端ID是一个“服务帐户”.我下载了json密钥并将其添加到我的解决方案中. 以下是相关代码: private async Task Run(string filePath) { UserCredential credential; var keyUrl = System.Web.HttpContext.Current.Server.MapPath("~/content/oauth_key.json"); using (var stream = new FileStream(keyUrl,FileMode.Open,FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets,// This OAuth 2.0 access scope allows an application to upload files to the // authenticated user's YouTube channel,but doesn't allow other types of access. new[] { YouTubeService.Scope.YoutubeUpload },"user",CancellationToken.None ); } var youtubeService = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = credential,ApplicationName = Assembly.GetExecutingAssembly().GetName().Name }); 当我运行它,我得到这个错误:至少应该设置一个客户端秘密(已安装或Web). 但是,在我的json里,没有“客户秘密”: { "private_key_id": "9d98c06b3e730070806dcf8227578efd0ba9989b","private_key": "-----BEGIN PRIVATE KEY-----nMIICdQIBADANBgkqhk etc,"client_email": "546239405652-8igo05a5m8cutggehk3rk3hspjfm3t04@developer.gserviceaccount.com","client_id": "546239405652-8igo05a5m8cutggehk3rk3hspjfm3t04.apps.googleusercontent.com","type": "service_account" } 所以我假设我忽略了一些东西. 解决方法
不是C#上的专家,但是您似乎试图使用服务帐户来执行OAuth2 Web服务器流程,这不应该起作用.
你可能想要使用 ServiceAccountCredential. 有关不同Google OAuth2流程的更多信息,请参阅 web server,service account等文档. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |