Bonjour,
Dans le cadre d’un carnet d’adresses global (public), nous souhaitons créer, via un script, ce carnet d’adresses puis donner l’accès en lecture à tous les utilisateurs (abonnement fait pour eux). Nous buttons sur le code ci-dessous; le 1er extrait de code permet de créer le carnet et des contacts pour un utilisateur donné. Le second ajoute les contacts. Le troisième est sensé permettre l’abonnement aux autres utilisateurs. Dans les faits, le carnet est créé, les contacts y sont associés, le carnet est visible par les autres utilisateurs, par contre ils ne voient pas son contenu.
Quelle logique suivre pour rendre les contacts visibles?
Merci d’avance.
Code de création d’un carnet :
// création d'un objet folder
Folder folder = new Folder();
folder.setName(name);
folder.setReadable(true);
folder.setSyncable(true);
folder.setManageable(false);
folder.setWritable(false);
folder.setDefault(false);
//folder.setSynced(true);
folder.setOwner(userToken.getUserId());
try
{
Folder responseFolder = bClient.createFolder(userToken, folder);
System.out.println("Creation du carnet numéro "+responseFolder.getId());
bClient.setFolderSync(userToken, folder, true);
// on retourne le carnet créé
return responseFolder;
} catch (Exception e) {
e.printStackTrace();
}
Extrait du code qui ajoute les contacts
//on récupère la liste des contacts
ArrayList<Contact> contacts = getContacts();
for (Contact contact : contacts)
{
contact.setFolderId(folder.getId());
try {
bClient.createWithoutDuplicate(userToken, contact);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Ajout du contact "+ contact.getDisplayName());
}
Code d’abonnement des utilisateurs :
//on récupère la liste de tous les utilisateurs
UserClient userClient = connexion.getUserClient();
UserQuery uq = new UserQuery();
ResultList<User> users = null;
try {
users = userClient.find(userToken, uq);
} catch (Exception e1) {
e1.printStackTrace();
}
//si on a des users
if(users !=null)
{
java.util.List<Integer> listusers = new ArrayList<Integer>();
//on construit une liste avec leur ID
for (User user : users)
{
listusers.add(user.getId());
}
try
{
bClient.subscribreMassUserFromAFolder(userToken, folder.getId(), listusers);
System.out.println("Abonnement des utilisateurs");
} catch (Exception e) {
e.printStackTrace();
}
}