Php-ews:创建联系人生日事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Php-ews:创建联系人生日事件相关的知识,希望对你有一定的参考价值。

我正在尝试使用php-ews和以下代码在Exchange中添加联系人:

$request = new EWSType_CreateItemType();

$request->SendMeetingInvitations = 'SendToNone';

$contact = new EWSType_ContactItemType();
$contact->GivenName = $updates['name'];
$contact->Surname = $updates['surname'];

if($updates['email'] != "")
    $email = new EWSType_EmailAddressDictionaryEntryType();
    $email->Key = new EWSType_EmailAddressKeyType();
    $email->Key->_ = EWSType_EmailAddressKeyType::EMAIL_ADDRESS_1;
    $email->_ = $updates['email'];

    // set the email
    $contact->EmailAddresses = new EWSType_EmailAddressDictionaryType();
    $contact->EmailAddresses->Entry[] = $email;


$contact->CompanyName = $updates['companyname'];

$contact->JobTitle = $updates['jobtitle'];

$contact->Birthday = $updates['birthday'];

$request->Items->Contact[] = $contact;

$response = $this->ews->CreateItem($request);

$ updates是我作为参数的字符串数组。(我跳过了包含,告诉我是否需要它们。)

现在,已经创建了联系人,并且一切正常,但是生日事件并未在我的日历中自动创建。

所以,我想知道是否有一种简单的方法可以完成此操作,除了显而易见的(非优雅)手动创建方法。

谢谢你,的Riccardo

答案

可以按照注释中预期的正确格式使用DateTime来解决此问题。

$contact->Birthday = (new DateTime($updates['birthday']))->format(DATE_W3C);

https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/time-zones-and-ews-in-exchange

dateTime元素的值中指定的时区可以采用三种形式。您可以阅读XML Schema第2部分:数据类型第二版中的所有详细信息,但释义为:

  • 通用协调时间(UTC):由'Z'指定。例如,2014-06-06T19:00:00.000Z
  • 特定时区:由'+'或'-'以及小时和分钟指定。例如,2014-06-06T19:00:00.000-08:00
  • 无时区:由没有任何时区指定。例如,2014-06-06T19:00:00.000

以上是关于Php-ews:创建联系人生日事件的主要内容,如果未能解决你的问题,请参考以下文章

传递日期对象时,人员 API 未创建生日

如何在没有一年的情况下检索从 Google 通讯录同步的联系人事件?

Android 应用程序 - 如何获取联系人的生日

使用工作流 C# 向 CRM 365 中的所有联系人发送电子邮件生日?

Android 获取联系人手机号码姓名地址公司邮箱生日

从联系 Swift 获取街道地址