MAJ Script Simple avec "Class ContactsApp" to "API People" Le sujet est résolu

Avatar de l’utilisateur
Lolowr
Messages : 18
Inscription : 29 nov. 2022 17:16
A remercié : 8 fois

MAJ Script Simple avec "Class ContactsApp" to "API People"

Message par Lolowr »

Qu'ellle serait la version equivalente avec Service API People  ?

Bonjour,

   Je souhaite affecter un contact du Groupe ("Patient") à un groupe existant "Covid" 
les Contacts du groupe ("Patient") qui possèdent dans leurs champs "Note" 
un texte rechercher par une forme régulière 
dateRegex = /COVID\+.*/gm;

En mode debeug tout se passe bien sauf a l'affectation du Group 
contact.addToGroup("Covid")

function addLabelToContactsCovid() {
var group = ContactsApp.getContactGroup("Patient");
var contacts = group.getContacts();
var dateRegex = /COVID\+.*/gm;
for (var i = 0; i < contacts.length; i++) {
var contact = contacts;
var notes = contact.getNotes();
var match = dateRegex.exec(notes);
if (match) {
contact.addToGroup("Covid")
}
}
}

Il semblerait que le service 
ContactsApp est ObsolèteClass ContactsAppObsolète. Utilisez plutôt le service avancé de l'API People.

Je ne maitrise pas le Service API People.qui est plus performant mais plus complexe également

Qu'elle serait la version equivalente avec Service API People  ?

Amicalement
Laurent
Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 87
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

Re: MAJ Script Simple avec "Class ContactsApp" to "API People"

Message par NC-Ahmet »

Hello Laurent,

J'espère que tu vas bien !

As-tu lu la ressource "Migrer du service Contacts au service avancée de l'API People" ?

Je t'invite à la lire car elle est très clair sur le sujet : le service Contacts de Google Apps Script est abandonné depuis décembre 2022.

Il est donc nécessaire de migrer vers l'API avancé. Pas d'excuse 😋

Voici ce que tu dois faire :
  1. Activer le service avancé dans Google Apps Script comme ça :Image
  2. Te documenter et creuser à fond sur l'utilisation des API REST (il y a plein de documentation sur Google, YouTube... Je crois même qu'OpenClassrooms propose un article gratuit sur le sujet.)
  3. Utiliser l'API.
Particulièrement le lien que je t'ai envoyé au début, "Passer du service Contacts au service avancé de l'API People" peut t'aider à éclairer ta lanterne au sujet de l'utilisation d'un API REST. 

A+ 
Ahmet
Avatar de l’utilisateur
Lolowr
Messages : 18
Inscription : 29 nov. 2022 17:16
A remercié : 8 fois

Re: MAJ Script Simple avec "Class ContactsApp" to "API People"

Message par Lolowr »

Merci Ahmet
j'espère que tu vas bien

J'avis rédiger une réponse concise à ce post mais le brouillon à disparu après Sauvegarde .... j'étais Furax 😡🤬
Je ne suis pas à l aise avec "API PEOPLE" je cherche un exemple ,je ne dois pas etre le seul a vouloir scruté ma base de contacts google ou une partie : un groupe (libellé) pour apporter des modification a celui ci
,c'est pour cela que je demandais un bout de script de départ

Ah bon entendeur si qq peux m'aider
mais encore Un grand Merci à toi Ahmet pour le temps que tu passes à rédiger tes Posts


Sinon 
J'ai essayer avec CHATGPT c'est completement bleufant

il reconnais meme l erreur qu'il a commis en ecrivant le Script puisque IA de CHATGPT na une Base de Donnée fin 2021
CHATGPT en est conscient
Effectivement Class Contact est Obsolète. Utilisez plutôt le service avancé de l'API People.


@@@@@@@@@

j'ai une erreur sur la ligne  contact.addToGroup("🦠")

Désolé, je me suis trompé dans mon précédent message en utilisant "🦠" pour l'étiquette, cela ne fonctionnera pas car les emojis ne sont pas pris en charge dans les groupes de contacts Google. Vous devez utiliser un nom de groupe de contacts valide à la place.

Pour ajouter un contact à un groupe spécifique, vous pouvez utiliser la méthode addToGroup et passer le nom du groupe de contact en tant que paramètre.

Copy code
contact.addToGroup("Patient");
Il est important de vous assurer que le groupe "Patient" existe déjà dans votre compte Google Contacts avant d'exécuter ce script, sinon vous obtiendrez une erreur.

Veillez à vérifier si le nom du groupe de contact est correctement orthographié et à vous assurer qu'il existe bien dans votre compte Google Contacts. Si vous rencontrez toujours des erreurs, n'hésitez pas à me faire savoir pour que je puisse vous aider à résoudre le problème.




Lolowr
function addLabelToContactsCovid() {
var group = ContactsApp.getContactGroup("@CPRP SNCF");
  var contacts = group.getContacts();
  //var contacts = ContactsApp.getContacts();
  //var dateRegex = /\bCOVID.*?(\d{4}[\/|-]\d{2}[\/|-]\d{2})\b/i;
  var dateRegex = /COVID\+.*/gm

  for (var i = 0; i < contacts.length; i++) {
    var contact = contacts;
    var notes = contact.getNotes();
    var match = dateRegex.exec(notes);
    if (match) {
      contact.addToGroup("virus");
    }
  }
}
Il semble que ce script va récupérer tous les contacts dans le groupe "@CPRP SNCF" en utilisant la méthode getContactGroup et ensuite, utilise la méthode getContacts pour récupérer les contacts dans ce groupe. Ensuite, il utilise une expression régulière (/COVID\+.*/gm) pour rechercher des correspondances qui contiennent "COVID+" suivi de n'importe quel nombre et n'importe quel caractère dans le champ "Note". Si une correspondance est trouvée, le script utilise la méthode addToGroup() pour ajouter l'étiquette "virus" au contact.

Il est important de noter que l'étiquette "virus" doit être créée préalablement dans Google contacts pour pouvoir être utilisée dans le script.
N'oubliez pas d'exécuter la fonction pour que cela soit pris en compte

N'hésitez pas à me demander si vous avez des questions supplémentaires ou si vous avez besoin d'aide pour adapter ce script à vos besoins spécifiques.




Lolowr
j obtiens ce message
Quel message d'erreur obtenez-vous exactement? Il pourrait y avoir plusieurs raisons pour lesquelles vous obtenez un message d'erreur lorsque vous exécutez ce script, comme le fait que le nom du groupe de contacts "@CPRP SNCF" n'existe pas dans votre compte Google Contacts, ou que vous n'avez pas les autorisations nécessaires pour accéder aux contacts dans ce groupe. Il est également possible que le script contienne une erreur syntaxique ou une erreur logique qui empêche son exécution correcte. Si vous pouviez me fournir le message d'erreur exact que vous avez reçu, je pourrais vous aider à résoudre le problème.




Lolowr
13:06:16    Erreur    
Exception: The parameters (String) don't match the method signature for ContactsApp.Contact.addToGroup.
addLabelToContactsCovid    @ Covid Libelle🦠.gs:15
Le message d'erreur indique que la méthode addToGroup attend un paramètre de type String mais qu'elle a été appelée avec un paramètre de type différent.
Il se peut que vous avez oublié de changer le nom de l'étiquette "virus" en "🦠" dans la ligne 15. Il est important de noter que les emojis ne sont pas pris en charge dans les groupes de contacts Google. Vous devez utiliser un nom de groupe de contacts valide à la place.

Il suffit de remplacer la ligne 15

Copy code
contact.addToGroup("virus");
par

Copy code
contact.addToGroup("COVID");
Il est important de vous assurer que le groupe "COVID" existe déjà dans votre compte Google Contacts avant d'exécuter ce script, sinon vous obtiendrez une erreur.
N'hésitez pas à me faire savoir si vous avez des questions supplémentaires ou si vous avez besoin d'aide pour adapter ce script à vos besoins spéc




Lolowr
Class Contact

Obsolète. Utilisez plutôt le service avancé de l'API People.
Effectivement,




Lolowr
 Utilisez plutôt le service avancé de l'API People pour ce script function addLabelToContacts() {
  var contacts = ContactsApp.getContacts();
  var dateRegex = /\bCOVID.*?(\d{4}[\/|-]\d{2}[\/|-]\d{2})\b/i;
  for (var i = 0; i < contacts.length; i++) {
    var contact = contacts;
    var notes = contact.getNotes();
    var match = dateRegex.exec(notes);
    if (match) {
      contact.addToGroup("COVID");
    }
  }
}
L'API People est un service avancé de l'API Google qui permet de gérer les contacts dans Google Workspace. Il remplace l'API ContactsApp obsolète qui était utilisée dans l'exemple que je vous ai donné précédemment.
Pour utiliser l'API People pour votre script, vous devrez d'abord activer l'API People dans votre projet Google Cloud Platform, ensuite vous devrez créer un jeton d'accès pour l'API People, et enfin utiliser les classes de l'API People pour accéder et gérer vos contacts.
Il est important de noter que le processus pour utiliser l'API People est un peu plus complexe que l'utilisation de l'API ContactsApp, il est donc conseillé de consulter la documentation officielle de l'API People pour obtenir des instructions détaillées sur la configuration et l'utilisation de l'API.

Il est important de noter que le script que vous avez partagé ne fonctionnera plus car l'API ContactsApp n'est plus supportée, il est donc nécessaire d'utiliser l'API People pour gérer les contacts.
N'hésitez pas à me faire savoir si vous avez besoin d'aide pour adapter votre script à l'API People.




Lolowr
oui je veux l adapter
Voici un exemple de script qui utilise l'API People pour rechercher les contacts qui contiennent "COVID" dans le champ "notes" et les ajouter à un groupe "COVID" :

Copy code
// Replace YOUR_API_KEY with your actual API key
const API_KEY = 'YOUR_API_KEY';

// Replace YOUR_GROUP_ID with the actual ID of the group you want to add the contacts to
const GROUP_ID = 'YOUR_GROUP_ID';

// Replace YOUR_GROUP_NAME with the actual name of the group you want to add the contacts to
const GROUP_NAME = 'COVID';

// Initialize the People API client
const people = gapi.client.people({apiKey: API_KEY, version: 'v1'});

// Define the query for searching contacts
const query = "notes:COVID";

// Search for contacts that match the query
people.people.connections.list({query: query}).then(response => {
  // Get the list of contacts from the response
  const connections = response.result.connections;
  // Iterate over the list of contacts
  connections.forEach(connection => {
    // Check if the contact is already in the group
    const member = connection.memberships.find(membership => membership.groupId === GROUP_ID);
    // If the contact is not in the group, add them to the group
    if (!member) {
      // Create the request body to add the contact to the group

      const requestBody = {



Lolowr
peut tu m ecrire le script
Je suis désolé, je ne peux pas écrire le script entièrement car il dépend de plusieurs informations qui ne sont pas disponibles, comme votre clé d'API, l'ID de votre groupe et l'expression régulière à utiliser pour rechercher les contacts.

Voici les étapes générales pour adapter votre script à l'API People:

Activer l'API People dans votre projet Google Cloud Platform.
Créer un jeton d'accès pour l'API People
Initialiser le client de l'API People
Définir la requête de recherche de contacts
Utiliser la méthode people.people.connections.list pour rechercher les contacts qui correspondent à la requête
Parcourir les contacts trouvés et utiliser la méthode people.contactGroups.members.modify pour ajouter les contacts au groupe "COVID"
Il est important de noter que ces étapes sont générales et qu'il peut y avoir des étapes supplémentaires ou des étapes qui diffèrent selon le cas d'utilisation. Il est donc conseillé de consulter la documentation officielle de l'API People pour obtenir des instructions détaillées sur la configuration et l'utilisation de l'API.
N'hésitez pas à me faire savoir si vous avez des questions supplémentaires ou si vous avez besoin d'a

@@@@@@@@@​function addLabelToContactsCovid() {
var group = ContactsApp.getContactGroup("@Patients");
  var contacts = group.getContacts();
  var dateRegex = /COVID\+.*/gm;
  for (var i = 0; i < contacts.length; i++) {
    var contact = contacts;
    var notes = contact.getNotes();
    var match = dateRegex.exec(notes);
    if (match) {
      contact.addToGroup('COVID');
    }
  }
}Pour convertir ce script pour utiliser l'API People de Google, vous devrez effectuer les étapes suiv
[img]data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1 ... 730%27/%3e[/img]Image
convertir avec API People
Pour convertir ce script pour utiliser l'API People de Google, vous devrez effectuer les étapes suivantes :
  1. Configurer un projet Google et activer l'API People.
  2. Obtenir les informations d'identification pour utiliser l'API, telles qu'un ID de client et un secret client.
  3. Utilisez les informations d'identification pour obtenir un jeton d'accès à l'API.
  4. Modifiez le script pour utiliser l'API People au lieu de ContactsApp pour récupérer les contacts et les mettre à jour.
  5. Utilisez les méthodes de l'API People pour rechercher et mettre à jour les contacts en fonction des notes contenant "COVID+"

Il est important de noter que l'API People de Google est un peu plus complexe à utiliser que les fonctions de script de contacts de Google, il est donc probablement nécessaire de consulter la documentation de l'API et de passer du temps à comprendre comment elle fonctionne.
 
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous