Question

I want to use Google API to transfer SharePoint Documents to Google Drive using dot net. For that to happen I want to use this link Google Quick Start.

I have followed every little piece of information. It states in beginning "Complete the steps described in the rest of this page, and in about five minutes you'll have a simple Drive app that uploads a file to Google Drive" but it is not true.

I am trying to run this sample example since yesterday but failed.

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

So it seems that this code example is outdated and Google APIs have been upgraded.

Here comes the warning

[Obsolete("GoogleAuthenticationServer is not supported any more and it's going to be removed in 1.7.0-beta. Consider using the new Google.Apis.Auth NuGet package which supports .NET 4, .NET for Windows Store apps, Windows Phone 7.5 and 8 and Portable Class Libraries as well")]

Another code

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

And the error

Cannot implicitly convert type 'Google.Apis.Authentication.OAuth2.DotNetOpenAuth.NativeApplicationClient' to 'Google.Apis.Http.IConfigurableHttpClientInitializer'. An explicit conversion exists (are you missing a cast?)

Then I was looking for [latest release samples] there I found the source files. I was not able able to run the sample also.

Here I was successfully authenticated but then had error for redirect Uri My Client_Secrets.JSON looks like, as you can see I have set default redirect Uri to 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/"]}}

Now I can run this application but as mentioned getting error

Error: redirect_uri_mismatch The redirect URI in the request: [[http://localhost:2430/authorize/]] did not match a registered redirect URI

I really don’t know from where this port number comes and from where this authorize comes. As you can see in my JSON, I have not set anything similar.

I am using VS 2010 SP1 Ultimate and Windows 7 home Basic.

I have tried to give complete information and my end goal is upload document in Google drive.

Was it helpful?

Solution 2

Take a look in https://code.google.com/p/google-api-dotnet-client/source/browse/Tasks.ASP.NET.SimpleOAuth2/Default.aspx.cs?repo=samples. It's a Task API ASP.NET sample. As you can see you need to add several lines of code, but it works.

OTHER TIPS

The tutorial you are following uses an older version of google.apis thats why you are seeing the not supported. Here are a couple of tutorials on how it works with the new version of the api.

I downloaded the samples Eyal mentions and got that compiling before integrating with my own app. .Net needs to be 4 although it states it supports higher.

You have to set the redirect URI in the google developer console, not in your JSON. In your case, you would want to set it to http://localhost:2430/authorize/.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top