【问题标题】:google calendar event insert .NET c#谷歌日历事件插入.NET c#
【发布时间】:2016-03-10 04:31:13
【问题描述】:

当我执行以下代码时:

    public static Event createDashyboardCalendarEvent()
    {
        static string[] Scopes = { CalendarService.Scope.CalendarReadonly };
        static string ApplicationName = "Outlook Google Syncher";

        Event createdEvent = null;

        try
        {
            UserCredential credential;

            using (var stream = new FileStream( "client_secret.json", FileMode.Open, FileAccess.Read ))
            {
                string credPath = System.Environment.GetFolderPath( System.Environment.SpecialFolder.Personal );
                credPath = Path.Combine( credPath, ".credentials/calendar-dotnet-quickstart.json" );
                Console.WriteLine( "credPath:\"{0}\"", credPath );

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load( stream ).Secrets, Scopes, "user",
                    CancellationToken.None, new FileDataStore( credPath, true ) ).Result;
            }
            // Create Google Calendar API service.
            var service = new CalendarService( new BaseClientService.Initializer( )
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            } );
            Event myEvent = new Event
            {
                Summary = "Test appointment",
                Location = "Here",
                Start = new EventDateTime( )
                {
                    DateTime = new DateTime( 2016, 3, 9, 10, 0, 0 ),
                    TimeZone = "Australia/Brisbane"
                },
                End = new EventDateTime( )
                {
                    DateTime = new DateTime( 2016, 3, 9, 10, 30, 0 ),
                    TimeZone = "Australia/Brisbane"
                },
                Recurrence = new String[]
                {
                "RRULE:FREQ=DAILY;COUNT=2"
                }
            };

            String calendarId = "primary";
            Console.WriteLine( "calling service.Events.Insert( newEvent, calendarId )" );
            EventsResource.InsertRequest request = service.Events.Insert( myEvent, calendarId );
            createdEvent = request.Execute( );
            Console.WriteLine( "Event created: {0}", createdEvent.HtmlLink );

        }
        catch (Exception ex)
        {
            Console.WriteLine( "Exception:{0}", ex );

            Console.WriteLine( "returning NULL" );
            return null;
        }


        Console.WriteLine( "Success. Returning" );
        return createdEvent;
    }
}

我得到一个例外:

Exception:The service calendar has thrown an exception: Google.GoogleApiException: Google.Apis.Requests.RequestError
Insufficient Permission [403]
Errors [
    Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]
]

   at Google.Apis.Requests.ClientServiceRequest`1.Execute() in .....

缺少什么?我可以毫无问题地执行服务 service.Events.List。

有没有地方可以看到为什么抛出了特定的异常?

谢谢

【问题讨论】:

标签: c# .net events google-calendar-api createprocess


【解决方案1】:

原来我使用了错误的授权。我没有使用服务授权方式。

现在可以了

【讨论】:

  • 什么是服务授权方式?能具体说明一下吗?
猜你喜欢
  • 2012-10-10
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多