Google Drive API - 示例代码无效

时间:2013-12-19 16:08:16

标签: asp.net google-api google-oauth google-openid google-api-dotnet-client

我想使用Google API使用dot net将SharePoint文档传输到Google云端硬盘。要做到这一点,我想使用这个link Google Quick Start

我已经关注了每一条信息。它首先说明了“完成本页其余部分中描述的步骤,大约五分钟后,您将有一个简单的云端硬盘应用将文件上传到Google云端硬盘”,但事实并非如此。

我试图从昨天开始运行这个示例,但是失败了。

// Register the authenticator and create the service
var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description, CLIENT_ID, CLIENT_SECRET);
var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization);

因此,此代码示例似乎已过时且Google API已升级。

警告

  

[已废弃(“GoogleAuthenticationServer不再受支持,它将在1.7.0-beta中删除。请考虑使用支持.NET 4,.NET for Windows Store应用的新Google.Apis.Auth NuGet软件包, Windows Phone 7.5和8以及便携式类库以及“)]

另一个代码

var service = new DriveService(new BaseClientService.Initializer()
{
Authenticator = auth
});

错误

  

无法将类型'Google.Apis.Authentication.OAuth2.DotNetOpenAuth.NativeApplicationClient'隐式转换为'Google.Apis.Http.IConfigurableHttpClientInitializer'。存在显式转换(您是否错过了演员?)

然后我在寻找[{3}}找到[最新发布的样本]。 我也无法运行样本。

这里我已成功通过身份验证,但之后出现了重定向Uri的错误 我的Client_Secrets.JSON看起来像,你可以看到我已将默认重定向Uri设置为http://localhost/

{"web":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","client_secret":"secret","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":email","redirect_uris":["http://localhost/"],"client_x509_cert_url":"aa@developer.gserviceaccount.com","client_id":"id","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","javascript_origins":["http://localhost:53404/"]}}

现在我可以运行此应用程序,但正如提到的那样出错

  

错误:redirect_uri_mismatch   请求中的重定向URI:[[source files与注册的重定向URI

不匹配

我真的不知道这个端口号来自何处以及来自此授权的位置。正如你在我的JSON中看到的那样,我没有设置任何类似的东西。

我正在使用VS 2010 SP1 Ultimate和Windows 7家庭基础版。

我试图提供完整的信息,我的最终目标是在Google云端硬盘中上传文档。

4 个答案:

答案 0 :(得分:2)

您所关注的教程使用较旧版本的google.apis,这就是您看到不受支持的原因。以下是一些有关如何使用新版api的教程。

答案 1 :(得分:1)

看看https://code.google.com/p/google-api-dotnet-client/source/browse/Tasks.ASP.NET.SimpleOAuth2/Default.aspx.cs?repo=samples。这是一个Task API ASP.NET 示例。正如您所看到的,您需要添加几行代码,但它可以正常工作。

答案 2 :(得分:0)

我下载了样本Eyal提及并在与我自己的应用程序集成之前进行了编译。 .Net需要为4,尽管它表示它支持更高。

答案 3 :(得分:0)

您必须在google开发者控制台中设置重定向URI,而不是在JSON中。在您的情况下,您可能希望将其设置为http://localhost:2430/authorize/