Как установить return_uri для GoogleWebAuthorizationBroker.AuthorizeAsync?

Я пытаюсь использоватьAPI Календаря Google в моемВеб-приложение не-MVC .NET, (Похоже, это важное различие.)

Я пытался использовать код изэтот пример в Google иэтот пример в Daimto вместе с некоторыми полезными советами от рядапохожие посты здесь.

Я написал следующий метод:

public void GetUserCredential( String userName )
{
    String clientId = ConfigurationManager.AppSettings[ "Google.ClientId" ];            //From Google Developer console https://console.developers.google.com
    String clientSecret = ConfigurationManager.AppSettings[ "Google.ClientSecret" ];    //From Google Developer console https://console.developers.google.com
    String[] scopes = new string[] {
            Google.Apis.Calendar.v3.CalendarService.Scope.Calendar          
    };

    // here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
    UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets
    {
        ClientId = clientId,
        ClientSecret = clientSecret             
    }, scopes, userName, CancellationToken.None, new FileDataStore( "c:\\temp" ) ).Result;

    // TODO: Replace FileDataStore with DatabaseDataStore
}

Проблема в том, что при вызове страницы Google OAuth2redirect_uri продолжает настраиваться наhttp://localhost:<some-random-port>/authorize, Я понятия не имею, как установить это на что-то другое, как в следующем примере URL, сгенерированныйAuthorizeAsync:

https://accounts.google.com/o/oauth2/auth?access_type=offline
    &response_type=code
    &client_id=********.apps.googleusercontent.com
    &redirect_uri=http:%2F%2Flocalhost:40839%2Fauthorize%2F
    &scope=https:%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar

Google отвечает сredirect_uri_mismatch Страница ошибки с сообщением:

«URI перенаправления в запросе:HTTP: // локальный: XXXXX / авторизированным / не соответствует зарегистрированному URI перенаправления »

Я могу зарегистрировать только такое количество URI перенаправления на странице учетных данных консоли разработчика Google. Я не склонен регистрировать 65535 портов и хочу использовать страницу, отличную от/authorize на моем сайте. В частности, я хочу использовать во время разработки,http://localhost:888/Pages/GoogleApiRedirect но не имею ни малейшего представления о том, где бы я это установил, кроме того, что я сделал в консоли разработчика.

Как мне явно установить значениеredirect_uri? Я также открыт для ответа в форме «Этот подход совершенно неверен».

РЕДАКТИРОВАТЬ:

Поиграв с этим в течение последнего дня, я обнаружил, что, используя идентификатор клиента / секрет клиента для собственного приложения, а не для веб-приложения, я могу, по крайней мере, попасть на страницу веб-авторизации Google, не жалуясь наredirect_uri_mismatch, Это все еще неприемлемо, потому что все еще возвращается кhttp://localhost:<some-random-port>/authorize, который находится вне контроля моего веб-приложения.

Ответы на вопрос(1)

Ваш ответ на вопрос