使用google-api-php-client创建活动时管理提醒的正确方法

时间:2016-07-20 11:53:38

标签: php google-calendar-api google-api-php-client

我在我的php webapp中使用google-api-php-client很长一段时间来插入日历事件,驱动器文件,发送邮件等等。一切正常。

关于日历,我要求用户删除特定类型活动的默认提醒。

我使用了以下过程:我的Google应用的所有用户都使用特定帐户分享了他们的日历,并使用此特定地址来设置库。

我无法使用此处文档中描述的指定方法:

https://developers.google.com/google-apps/calendar/v3/reference/events/insert

以下代码:

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  ...
  ...
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

只有在我直接使用OAuth中的目标帐户时才会有效;尝试"在谷歌页面上。

假设我想为bla@bla.com创建一个活动而不使用try it google页面检索他的默认提醒,我必须使用bla@bla.com来OAuth。在这种情况下,默认提醒不会被使用,我会按预期获得2个提醒(电子邮件24 * 60和弹出窗口10)。

如果我将我的特定帐户用于OAuth,我可以在bla@bla.com帐户上创建活动(因为日历是共享的),但在这种情况下,useDefault => false似乎被省略,并且使用bla@bla.com上设置的默认提醒而不是预期的2 ...

使用我的webApp或谷歌尝试它的结果是相同的,我认为这不是google-api-php-client的错误用法。

任何帮助都将不胜感激。

的Seb

1 个答案:

答案 0 :(得分:0)

关于setUseDefault(false);的使用实际上有一个提升issue in GitHub并且基于帖子

  

使用string代替boolean似乎可以解决此问题。

这是通过替换

来解决的

$set_reminders->setUseDefault(false);

$set_reminders->setUseDefault("false");

我希望这也适合你。