Problems with files downloading from Google Drive Api using mvc

When authenticating to Google there is a difference between an installed application and a web application. Installed Applications can open the authorization window in the browser on the current machine, Web applications need to open the web browser for the authorization on the users machine. GoogleWebAuthorizationBroker.AuthorizeAsync Is designed for use with installed applications. It will open the web browser for authentication and authorization on the server which wont work.

For a web application you should be using GoogleAuthorizationCodeFlow

using System;
using System.Web.Mvc;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Auth.OAuth2.Flows;
using Google.Apis.Auth.OAuth2.Mvc;
using Google.Apis.Drive.v2;
using Google.Apis.Util.Store;

namespace Google.Apis.Sample.MVC4
    public class AppFlowMetadata : FlowMetadata
        private static readonly IAuthorizationCodeFlow flow =
            new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
                    ClientSecrets = new ClientSecrets
                        ClientId = "PUT_CLIENT_ID_HERE",
                        ClientSecret = "PUT_CLIENT_SECRET_HERE"
                    Scopes = new[] { DriveService.Scope.Drive },
                    DataStore = new FileDataStore("Drive.Api.Auth.Store")

        public override string GetUserId(Controller controller)
            // In this sample we use the session to store the user identifiers.
            // That's not the best practice, because you should have a logic to identify
            // a user. You might want to use "OpenID Connect".
            // You can read more about the protocol in the following link:
            var user = controller.Session["user"];
            if (user == null)
                user = Guid.NewGuid();
                controller.Session["user"] = user;
            return user.ToString();


        public override IAuthorizationCodeFlow Flow
            get { return flow; }

See full sample here

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top