URI перенаправления в запросе: http://localhost:12349/authorize/ не соответствует зарегистрированному URI перенаправления.

Я получаю эту ошибку при попытке запустить консольное приложение С#... Я пытаюсь вызвать google calender api v3, чтобы получить календарь и добавить событие в календарь. В соответствии с примером кода из google-api-dotnet-client я делаю это ( https://code.google.com/p/google-api-dotnet-client/source/browse/Calendar.VB.ConsoleApp/Program.vb?repo=samples ) Вот код vb.net. Я использую этот образец после преобразования его в код С#.

Вот мой код:

class Program
{
    static void Main(string[] args)
    {
        try
        {
            new Program().Run().Wait();
        }
        catch (AggregateException ex)
        {
            foreach (var e in ex.InnerExceptions)
            {
                Console.WriteLine("ERROR: " + e.Message);
            }
        }
    }

    private async Task Run()
    {
        UserCredential credential;
        IList<string> scopes = new List<string>();

        CalendarService service;
        scopes.Add(CalendarService.Scope.Calendar);


        using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
        {
            // problem occuring during executing this statement.
            credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                scopes,
                "user", CancellationToken.None, new FileDataStore("Calender.SampleApp") );
        }

        BaseClientService.Initializer initializer = new BaseClientService.Initializer();
        initializer.HttpClientInitializer = credential;
        initializer.ApplicationName = "C# Calendar Sample";

        service = new CalendarService(initializer);

        Event newEvent = new Event();

        newEvent.Summary = "Appointment";
        newEvent.Description = "Need to meet my Uncle";

        IList<EventReminder> reminders = new List<EventReminder>();
        reminders.Add(new EventReminder { Method = "sms", Minutes = 10 });
        newEvent.Reminders = new Event.RemindersData { UseDefault = false, Overrides = reminders };

        newEvent.Recurrence = new String[] { "DTSTART;TZID=Bangladesh Standard Time:20140124T163000;RRULE:FREQ=DAILY" };

        IList<EventAttendee> attendees = new List<EventAttendee>();
        attendees.Add(new EventAttendee { Email = "[email protected]", Organizer = true, DisplayName = "Hannan" });
        newEvent.Attendees = attendees;

        newEvent.GuestsCanInviteOthers = false;
        newEvent.GuestsCanModify = false;
        newEvent.GuestsCanSeeOtherGuests = false;
        newEvent.Location = "Dhaka, Bangladesh";
        newEvent.Start = new EventDateTime { DateTime = DateTime.Now, TimeZone = "Bangladesh Standard Time" };

        Event recurringEvent = service.Events.Insert(newEvent, "primary").Execute();

        var list = await service.CalendarList.List().ExecuteAsync();
    }
}

Это мои URI перенаправления в моем проекте Google Developers Console.

Redirect URIs: http://localhost:7744/authorize/

И это сообщение об ошибке, отображаемое в браузере.

введите здесь описание изображения

Я не мог найти способ решить эту проблему. Некоторая помощь будет ощутимой. Я также ищу все реальные сообщения в stackoverflow. Но я не мог найти его решения.


person Hannan Hossain    schedule 24.01.2014    source источник
comment
Номера портов не совпадают, а номера портов являются важной частью идентификатора HTTP uri.   -  person Damien_The_Unbeliever    schedule 24.01.2014
comment
@Damien_The_Unbeliever Я знаю. Но я не определял URI перенаправления в своем консольном приложении. Как это определить.   -  person Hannan Hossain    schedule 24.01.2014
comment
@Damien_The_Unbeliever, как я могу определить uri перенаправления из консольного приложения во время сопоставления учетных данных???   -  person Hannan Hossain    schedule 27.01.2014
comment
Вам не нужно определять uri перенаправления в консольном приложении при аутентификации. Пожалуйста, посмотрите мой ответ, я думаю, это решит вашу проблему.   -  person SKD    schedule 27.01.2014


Ответы (2)


Я думаю, что вы делаете что-то не так, когда «создаете идентификатор клиента» в консоли GoogleDevelopers. Убедитесь, что вы выбрали «Установленное приложение» в типе приложения для доступа к вашему проекту из консольного приложения.

Взгляните на прикрепленное изображение. В соответствии с типом запроса вы должны создать идентификатор клиента и учетные данные в своем зарегистрированном приложении в Google Developers Console.

Вам не нужно определять uri перенаправления в консольном приложении при аутентификации.

введите здесь описание изображения

person SKD    schedule 27.01.2014
comment
Если вы используете консольное приложение, выберите «Другое», чтобы создать идентификатор клиента. - person Brijesh Bhagavath; 22.10.2017

У меня возникла эта ошибка в простой тестовой программе (https://ctrlq.org/google.apps.script/docs/guides/rest/quickstart/dotnet.html), и оказалось, что client_secret.json был неправильным, загрузите его снова, и он заработал. .

person Chesare    schedule 08.06.2018