none
API Google Calendar v3 RRS feed

  • Pergunta

  • Olá, estou com o seguinte problema:

    Tenho uma funcionalidade que insere um evento no calendário (google) do usuário. Testei algumas vezes e funcionou perfeitamente(local), porém subi a aplicação pro servidor e lá não funciona. Alguma ideia do que pode ser?
    Segue o código:

    public void InserirEventoCalendario(string sumario, string localizacao, DateTime inicio, DateTime fim, string recorrencia, string email)
            {
                try
                {
                    #region[CREDENTIALS E SERVICE]
                    var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets
                    {
                        ClientId = client_Id,
                        ClientSecret = client_Secret
                    },
                    new[] { CalendarService.Scope.Calendar },
                    "user",
                    CancellationToken.None).Result;
    
                    //Create the service.
    
                    var service = new CalendarService(new BaseClientService.Initializer
                    {
                        HttpClientInitializer = credential,
                        ApplicationName = "Calendar API Sample",
                    });
    
                    #endregion
    
                    #region[DATA]
                    DateTime start = inicio;
                    DateTime end = fim;
    
                    var curTZone = TimeZone.CurrentTimeZone;
                    var dateStart = new DateTimeOffset(start, curTZone.GetUtcOffset(start));
                    var dateEnd = new DateTimeOffset(end, curTZone.GetUtcOffset(end));
                    var startTimeString = dateStart.ToString("o");
                    var endTimeString = dateEnd.ToString("o");
                    #endregion
    
                    #region[EVENTO_CALENDAR]
    
                    Event novoEvento = new Event
                    {
                        Summary = sumario,
                        Location = localizacao,
                        Start = new EventDateTime
                        {
                            DateTime = Convert.ToDateTime(startTimeString),
                            TimeZone = startTimeString
                        },
                        End = new EventDateTime
                        {
                            DateTime = Convert.ToDateTime(endTimeString),
                            TimeZone = endTimeString
                        },
                        Recurrence = new String[]
                        {
                            "RRULE:FREQ=DAILY;COUNT=1"
                        },
                        Attendees = new List<EventAttendee>
                        {
                        new EventAttendee { Email = emailPaciente }
                        },
                    };
    
                    var recEvent = service.Events.Insert(novoEvento, "primary");
                    recEvent.SendNotifications = true;
                    recEvent.Execute();
    
                    #endregion
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
    Desde já agradeço!



    Alan César SharePoint Developer

    sexta-feira, 13 de maio de 2016 21:21

Respostas

  • Boa noite,

    Algum problema com permissão de acesso amigo "Access is denied ".
    Uma dica seria você dividir o código, ou seja subir por parte até descobrir onde esta o erro. Ou realizar mais tratamentos de erros "try catch" adicionando as devidas mensagens pra você saber onde deu o erro. 
    Como foi dito anteriormente, verifique a permissões do servidor.

    Espero ter contribuído de alguma forma.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta Marcos SJ quarta-feira, 18 de maio de 2016 16:52
    segunda-feira, 16 de maio de 2016 22:31

Todas as Respostas

  • Boa noite,

    Alan, tente tratar o erro gravando um log no banco ou enviando um e-mail para identificar o problema. O Servidor de hospedagem tem permissão de acesso (saída) externo ?

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    sexta-feira, 13 de maio de 2016 23:36
  • Silvaney, bom dia.

    Estou criando o log e executar novamente. Acredito que o servidor tenha essa permissão sim.
    Assim que executar a aplicação aqui darei um retorno.

    Muito obrigado!


    Alan César SharePoint Developer

    segunda-feira, 16 de maio de 2016 12:20
  • Boa tarde, a exceção disparada:

    System.Net.HttpListenerException (0x80004005): Access is denied at System.Net.HttpListener.SetupV2Config() at System.Net.HttpListener.Start() at Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.d__6.MoveNext() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis.Auth.DotNet4\OAuth2\LocalServerCodeReceiver.cs:line 83 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis.Auth\OAuth2\AuthorizationCodeInstalledApp.cs:line 77 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis.Auth.DotNet4\OAuth2\GoogleWebAuthorizationBroker.cs:line 134 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\Support\GoogleApis.Auth.DotNet4\OAuth2\GoogleWebAuthorizationBroker.cs:line 60.

    Vale lembrar na localmente a aplicação executa normalmente, o erro acontece no servidor.


    Alan César SharePoint Developer


    • Editado Alan Cesar segunda-feira, 16 de maio de 2016 18:57
    segunda-feira, 16 de maio de 2016 18:56
  • Boa noite,

    Algum problema com permissão de acesso amigo "Access is denied ".
    Uma dica seria você dividir o código, ou seja subir por parte até descobrir onde esta o erro. Ou realizar mais tratamentos de erros "try catch" adicionando as devidas mensagens pra você saber onde deu o erro. 
    Como foi dito anteriormente, verifique a permissões do servidor.

    Espero ter contribuído de alguma forma.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta Marcos SJ quarta-feira, 18 de maio de 2016 16:52
    segunda-feira, 16 de maio de 2016 22:31