Page 1 sur 1

Script API PEOPLE Renommer un Champs personnalisé existant dans Google Contacts pour un Groupe de Contact

Publié : 27 janv. 2023 19:14
par Lolowr

Code : Tout sélectionner

Bonjour,

   J'essaye sans grand succès d'utiliser API People à la place de la Classe Contact(Obsolète)
   J'ai suivi les conseils d'Ahmet en activant le service API People dans le script
[/size]
SVP novice avec API PEOPLELe Script ne fonctionne pas
Je souhaite remplacer le Libellé  "CKD EPI" par "CKD EPI / CROKOFF / CREAT" (que le nom du Libellé ,pas la Valeur du champs annexe)

Qu'est qui ne va pas  ?

Code : Tout sélectionner

function renameCustomField() {
  var debug = true;
  var group = People.PeopleApi.getContactGroups().get("MonGroup").execute();  // 
[/size]

Code : Tout sélectionner

[b]erreur [/b]
je pense que People n'a aucune propriété de PeopleApi[/size][/i][/u][/color]

Code : Tout sélectionner

  var oldFieldName = "CKD EPI";
  var newFieldName = "CKD EPI / CROKOFF / CREAT";
  
  for (var i = 0; i < group.members.length; i++) {
    var contact = group.members[i];
    var fields = contact.userDefined;
    for (var j = 0; j < fields.length; j++) {
      if (fields[j].key === oldFieldName) {
        fields[j].key = newFieldName;
        if (debug) {
          console.log("Renaming field for contact: " + contact.names[0].displayName);
        }
      }
    }
    var updateContact = {
      resourceName: contact.resourceName,
      updatePersonFields: "userDefined",
      userDefined: fields
    }
    People.PeopleApi.updateContact(updateContact).execute();
  }
}
[/size]

Re: Script API PEOPLE Renommer un Champs personnalisé existant dans Google Contacts pour un Groupe de Contact

Publié : 06 févr. 2023 16:55
par NC_Quentin
Bonjour !

J’ai fait une petite fonction qui permet de renommer un groupe de contacts. J’ai mis des commentaires, et même si je sais que c’est un peu illisible sur le forum puisque tout passe en vert, une fois copié-collé dans l’éditeur d’Apps Script ce sera plus lisible, promis.

Code : Tout sélectionner

function renameContactsGroup(oldName, newName){
// On récupère les groupes de contact
// cf. https://developers.google.com/people/api/rest/v1/contactGroups/list
let groups = People.ContactGroups.list().contactGroups;

// On trouve notre groupe
let group = groups.find(group => group.name == oldName);

// On vérifie que le groupe existe bien
if(group){
// On modifie le nom du groupe
// cf. https://developers.google.com/people/api/rest/v1/contactGroups/update
// Note annexe : Il est nécessaire de mettre le etag, qui sert de validation cache. Sans ce paramètre, il y aura une erreur "Fingerprint missing".
People.ContactGroups.update({contactGroup: { name: newName, etag: group.etag}}, group.resourceName);
}
}

Une version sans la fonction qui correspond exactement à ce que vous cherchez serait du coup :

Code : Tout sélectionner

let oldName = "CKD EPI";
let newName = "CKD EPI / CROKOFF / CREAT";

let groups = People.ContactGroups.list().contactGroups;

let group = groups.find(group => group.name == oldName);

if(group){
People.ContactGroups.update({contactGroup: { name: newName, etag: group.etag}}, group.resourceName);
}

À noter en revanche que c’est bien un renommage du groupe, si l’idée est de transférer les membres du groupe de départ vers le groupe d’arrivée en gardant l’étiquette initiale, il faudra procéder autrement !

Re: Script API PEOPLE Renommer un Champs personnalisé existant dans Google Contacts pour un Groupe de Contact

Publié : 01 juin 2023 17:25
par Lolowr
Je suis vraiment désolé NC_Quentin ...j'ai zappé ta réponse mais j'ai beaucoup avancé sur le sujet et trouvé la solution
Je viens d 'ouvrir un nouveau sujet sur 

Sujet :Changer la photo de profil de tous les contacts appartenant a un groupe de contact
A l aide d un google appscript est il possible de changer la photo de profil de tous les contacts appartenant a un groupe de contact "SORTIES PATIENTELE" par une photo stocker dans Google photo

Photo dans Google Photo : var nouvellePhotoUrl = 'https://lh3.googleusercontent.com/conta ... TQ4oLS-0xQ'; // URL de la nouvelle photo dans Google Photos