Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les applications avec identité de package peuvent stocker leurs contacts dans Windows. Ces contacts peuvent apparaître sous forme de suggestions dans le widget Contacts, Windows Search et la feuille de partage. Cet article explique comment créer un compte de données d’utilisateur, stocker des contacts et configurer l’accès pour les expériences Windows.
Créer un UserDataAccount pour le contrat People
Commencez par créer un compte de données utilisateur. Les applications tierces sont requises pour créer un UserDataAccount en utilisant UserDisplayName comme "com.microsoft.peoplecontract".
UserDataAccountStore udas =
await UserDataAccountManager.RequestStoreAsync(UserDataAccountStoreAccessType.AppAccountsReadWrite);
UserDataAccount uda = await udas.CreateAccountAsync("com.microsoft.peoplecontract");
Ensuite, ajoutez "com.microsoft.windows.system" à la liste des ExplictReadAccessPackageFamilyNames pour le compte. Cela fournira un accès restreint des contacts tiers aux expériences Windows.
uda.ExplictReadAccessPackageFamilyNames.Add("com.microsoft.windows.system");
await uda.SaveAsync();
Stockage des contacts
La première étape du stockage des contacts consiste à créer une liste de contacts. Pour ce faire, les applications tierces doivent créer la nouvelle liste de contacts pour le UserDataAccount dans le ContactStore de Windows. Les applications peuvent choisir de conserver le type d’accès par défaut OtherAppReadAccess pour la liste de contacts, tout en le définissant pour None empêcher les autres applications d’avoir accès à ces contacts. Consultez l’énumération ContactListOtherAppReadAccess pour obtenir la liste complète des types d’accès disponibles.
ContactStore store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AppContactsReadWrite);
this.contactList = await store.CreateContactListAsync(contactListsName, uda.Id);
contactList.OtherAppReadAccess = ContactListOtherAppReadAccess.None;
await contactList.SaveAsync();
Lors du stockage d’un contact, les applications tierces doivent inclure toutes les informations pertinentes requises pour que les expériences Windows alimentent un contact.
Les champs suivants sont requis lors du stockage d’un contact :
FirstNameRemoteIdDisplayPicture
Les champs suivants sont facultatifs :
LastNamePhonesEmails
Cet extrait de code montre comment stocker un contact :
foreach (var appContact in AppContacts)
{
var cont = new Contact
{
FirstName = appContact.FirstName,
LastName = appContact.LastName,
RemoteId = appContact.Id,
SourceDisplayPicture = RandomAccessStreamReference.CreateFromUri(new Uri(appContact.ProfilePicPath)),
Phones = { new ContactPhone { Number = appContact.Phone } }
};
await this.contactList.SaveContactAsync(cont);
}
Note
Le DisplayName pour le Contact est construit en utilisant FirstName et LastName. Si le nom n’est pas fourni, DisplayName est identique à la chaîne fournie pour le prénom.
Confidentialité et consentement
Ajoutez uniquement des contacts explicites
Votre application doit contribuer uniquement aux contacts que l’utilisateur a explicitement ajoutés ou autorisés. Jamais :
- Charger l’intégralité du carnet d’adresses
- Synchroniser automatiquement les contacts sans consentement de l’utilisateur
- Partager des contacts à partir d’annuaires d’entreprise sans autorisation explicite
Demandez l’autorisation avant de stocker des contacts dans Windows People :
private async Task<bool> RequestContactStoreAccessAsync()
{
// Requesting a writable ContactStore prompts the user for consent.
// Your app must declare the contacts capability in its manifest.
ContactStore store = await ContactManager.RequestStoreAsync(
ContactStoreAccessType.AppContactsReadWrite);
return store != null;
}
Respecter les paramètres de confidentialité des utilisateurs
Permettre aux utilisateurs :
- Choisir les contacts à partager avec Windows
- Désactiver l’intégration des contacts Windows
- Supprimer leurs contacts de Windows à tout moment
// Provide a setting to disable sync
if (this.ShouldSyncContactsWithWindows)
{
await SyncContactsAsync();
}
else
{
// Clear contacts if the user disables sync
await ClearWindowsContactsAsync();
}
Contenu connexe
Windows developer