exchangewebservices — Избегайте дублирования элементов при создании контакта в Php-Ews

я использую https://github.com/Garethp/php-ews/ библиотека для доступа к моей общедоступной папке контактов на сервере Exchange.

Вот как я создаю контакт.

$api = API::withUsernameAndPassword($server, $user, $pass);
$folder = $api->getFolderByDisplayName('Public', Enumeration\DistinguishedFolderIdNameType::PUBLICFOLDERSROOT);
$contattiTotali = $api->getFolderByDisplayName('Contacts', $folder->getFolderId());
$id=$contattiTotali->getFolderId()->getId();
$api->setFolderId($contattiTotali->getFolderId());

$api->createContacts(array(
'GivenName' => 'Homer',
'Surname' => 'Simpson',
'EmailAddresses' => array(
'Entry' => array('Key' => Enumeration\EmailAddressKeyType::EMAIL_ADDRESS_1, '_value' => 'h.simpson@gmail.com')
),
//Creating multiple entries
'PhoneNumbers' => array(
'Entry' => array(
array('Key' => Enumeration\PhoneNumberKeyType::HOME_PHONE, '_value' => '000'),
array('Key' => Enumeration\PhoneNumberKeyType::BUSINESS_PHONE, '_value' => '111'),
)
),
'PhysicalAddresses' => array(
'Entry' => array(
'Key' => Enumeration\PhysicalAddressKeyType::HOME,
'street' => '123 Street',
'city' => '123 City',
'state' => '123 State',
'countryOrRegion' => '123 Country',
'postalCode' => '12345',
)
),
));

На самом деле код работает нормально, но если я выполню его несколько раз, он дублирует контакт.

Есть ли способ проверить, существует ли уже контакт (адрес электронной почты достаточно хорош), прежде чем создавать новый?

0

Решение

Самый простой способ узнать, существует ли уже контакт с конкретным адресом электронной почты, — использовать операцию ResolveName, например:

    $request = new EWSType_ResolveNamesType();

$request->UnresolvedEntry = "address@domain.com";
$request->ReturnFullContactData = true;
$return = $ews->ResolveNames($request);

if ($return->ResponseMessages->ResolveNamesResponseMessage->ResponseCode == "NoError") {
return $return->ResponseMessages->ResolveNamesResponseMessage->ResolutionSet->Resolution->Mailbox->EmailAddress;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector