GoogleCalendarV32LeggedAuthenticationFailed我正在尝试创建一个网页来访问公司(企业)私人日历并在时间段可用时插入事件。我仍然面临身份验证问题。API手册指出我应该使用API密钥和Oauth2LeggedAuthenticator,所以我做了所有这些并且被触发的请求很好(它有一个oauth令牌等)但是响应是一个带有无效凭据的异常;很容易说我的凭据是错误的,但clientID、clientSecret和APIKey仍然有效;我怀疑2leged验证器的最后两个参数是否正确?varprovider=newNativeApplicationClient(GoogleAuthenticationServer.Description);provider.ClientIdentifier=ClientCredentials.ClientID;provider.ClientSecret=ClientCredentials.ClientSecret;varauthenticator=newOAuth2LeggedAuthenticator(ClientCredentials.ClientID,ClientCredentials.ClientSecret,"myworkusername","workdomain.com");Google.Apis.Calendar.v3.CalendarService服务=newGoogle.Apis.Calendar.v3.CalendarService(authenticator);service.Key=ClientCredentials.ApiKey;varresult=service.CalendarList.List().Fetch();Assert.IsTrue(结果.Items.Count>0);注意:在撰写本文时,您只能对GoogleAppsforBusiness/Eduction使用双因素身份验证,这不适用于个人帐户,因为无法获取OAuth1.0密钥/密钥对,您必须至少使用一次在线身份验证(但您可以使用浏览器外选项,这样您就不必创建专用页面)。您的代码是正确的,只是您不需要与NativeApplicationClient相关的前3行。这很可能会失败,因为您没有正确设置OAuth密钥,这会导致401。导致401的另一件事是使用“matt@example.com”而不是“matt”作为用户名,并且用户名不包含您的域名。要设置OAuth,请按照Google撰写的这篇文章中的说明进行操作。需要注意的最重要的部分是“允许访问所有API”,必须取消选中它并且必须单独授予对所有API的访问权限。如果尚未完成此操作,您将收到401InvalidCredentials错误。那么你还需要在api控制台中开启这些服务。如果api控制台步骤尚未完成,您将收到403DailyLimitExceeded的不同错误。如果您以前依赖“允许访问所有API”来使用各种服务,这将给您带来问题,据我所知,您必须单独授予它们才能使用v3API。这似乎已被谷歌证实(NicolasGarnier的第4次回复),据说这是一个错误,但这是一篇旧帖子,所以看起来它会保留下来。作为参考,一旦完成,此代码将起作用,与您的代码基本相同:varauth=newOAuth2LeggedAuthenticator(domainName,consumerSecret,usernameWithoutDomain,domainName);//domainName目前用作Google的2leggedOAuth的OAuthConsumerKeyvarservice=newCalendarService(auth);service.Key=服务密钥;varresults=service.CalendarList.List().Fetch();Console.WriteLine(results.Items.Count);总结一下:在GoogleApps中“管理此域>高级工具使用管理OAuth域密钥启用密钥,生成密钥,取消选中允许访问所有API。使用“Managethird-partyOAuthclientaccess”,您要使用您的域访问的API是“ClientName”,并启用您要访问的API,例如“http://www.google.com/calendar/提要/”日历。然后最后在API控制台创建一个项目,使用API??Key作为上面例子中的serviceKey,打开你需要访问的API。当我试图弄清楚为什么我的代码一直返回401时,我一直在回答这个问题。希望这对某人有所帮助,因为谷歌的说明现在非常糟糕,散落在各处。以上就是C#学习教程:GoogleCalendarV32Legged认证失败分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
