如何使用Delphi和TMS组件将事件添加到多个Google日历?

时间:2017-10-18 14:43:10

标签: delphi google-calendar-api delphi-10.2-tokyo

我使用Google Calendar API添加特定日历,然后在其中添加活动。

我只能在一个日历上执行此操作。 (我的个人日历,使用API​​函数记录:DoAuth()

我有两个问题:

  1. 如何在同一时间在另一个日历中添加同一事件?
  2. 是否可以在没有谷歌登录窗口的情况下执行DoAuth()?
  3. 也许我可以使用API​​密钥,但我无法计算如何编写验证部分。

    以下是我制作的一些基本代码:

    //-------------------------------------------------------------------------
    //                  FORM CREATE
    //-------------------------------------------------------------------------
    procedure TForm1.FormCreate(Sender: TObject);
        begin
            AdvGCalendar1.DoAuth;
            Edit1.SetFocus();
        end;
    
    
    //------------------------------------------------------------------------
    //                  ADD CALENDAR
    //-------------------------------------------------------------------------
        procedure TForm1.bt_ajouterCalendrierClick(Sender: TObject);
        var
        grem: TGReminder;
    
      begin
        Screen.Cursor := crHourGlass;
        gcal := AdvGCalendar1.Calendars.Add;
        gcal.Summary := 'Calendrier X';
        gcal.Description := 'Description X';
        gcal.Location := 'Locaux X';
        gcal.TimeZone := 'UTC';
        grem.Method := rmPopup;
        grem.Minutes := 60;
        grem := gcal.DefaultReminders.Add;
    
        AdvGCalendar1.AddCalendar(gcal);
        Screen.Cursor := crDefault;
      end;
    
    //-------------------------------------------------------------------------
    //                 GET INFOS EVENT
    //-------------------------------------------------------------------------
    
        procedure TForm1.inputInfosRendezVous(Item: TGCalendarItem);
        var dateDebut, dateFin : TDateTime;
        begin
            Item.Summary := 'Test event';
            Item.Description := 'Test descirption';
            Item.Location := 'Test location';
            Item.Color := icBlue;
            Item.IsAllDay := false;
            Item.StartTime := PlannerCalendar1.Date;
            Item.EndTime := PlannerCalendar2.Date;
            Item.Visibility := viPublic;
    
        end;
    
    //-------------------------------------------------------------------------
    //                 ADD EVENT TO CALENDAR
    //-------------------------------------------------------------------------
      procedure TForm1.bt_ajouterRendezVousClick(Sender: TObject);
      var
      event: TGCalendarItem;
      begin
        Screen.Cursor := crHourGlass;
        event := AdvGCalendar1.Items.Add;
        inputInfosRendezVous(event);
        event.CalendarID := gcal.ID;
        AdvGCalendar1.Add(event);
        Screen.Cursor := crDefault;
      end;
    

    提前感谢您的帮助。

0 个答案:

没有答案