Hi,
Pardon the ignorance but I am new to XF and am trying to wrap my head around this.
I had asked a previous question on uploading a file to OneDrive through my XF app. I got it to work and will post a solution.
The problem I am now facing is doing the same thing but for GoogleDrive. I have read much on how to do this and it seems very cumbersome. Has anyone successfully done this and if so is there a sample project any where.
After searching the web I did create a Drive API at console.developers.google.com
In my XF app I did this:
private static async Task SignInToGoogleDrive()
{
string[] Scopes = { DriveService.Scope.DriveReadonly, DriveService.Scope.DriveFile };
GoogleWebAuthorizationBroker.Folder = "Google.Apis.Util.Store.FileDataStore";
UserCredential credential;
try
{
using (var stream = new FileStream(App.GoogleJsonFilePath, FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes, "user",
CancellationToken.None
);
}
// Create the service.
var service = new DriveService(new Google.Apis.Services.BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "GarageMaster",
});
// Define parameters of request.
FilesResource.ListRequest listRequest = service.Files.List();
listRequest.PageSize = 10;
listRequest.Fields = "nextPageToken, files(id, name)";
// List files.
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
.Files;
}
catch (Exception ex)
{
int testStop = 0;
}
int testStop1 = 0;
}
I followed, what I think is correct, from the Google Api examples, and created a json file. I put it in my project and load it as a stream. That is what, in the above code, App.GoogleJsonFilePath is.
Now to be quite honest, I really don't know what this line does:
GoogleWebAuthorizationBroker.Folder = "Google.Apis.Util.Store.FileDataStore";
so I am going about this a bit blindly.
The above does compile, but when it gets to this line,
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(…..
flow goes to the Catch statement and the error is:
ex = {System.NotSupportedException: Failed to launch browser with "https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=6181........
I really don't know where to go from this point and any help would be appreciated.
Thanks.