Script récupérer contact google dans sheet
Publié : 10 mars 2024 18:17
Bonjour,
je débute sous google script et je me suis fait aider par de chatgpt pour le faire.
j'ai commencer un script qui me permet de récupérer les contact google directement dans une feuille Sheets.
il fonctionne mais il ne me remonte pas le champs "service" présent dans le bloc société/entreprise.
voici le code
function getGoogleContacts() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Effacer les données précédentes
sheet.clear();
// Écrire les en-têtes des colonnes
sheet.appendRow([
"Name",
"Group Membership",
"E-mail 1 - Value",
"Phone 1 - Value",
"Address 1 - Formatted",
"Address 2 - Formatted",
"Organization 1 - Name",
"Organization 1 - Service",
"Organization 1 - Title",
"Website 1 - Value"
]);
// Récupérer les contacts Google
var contacts = ContactsApp.getContacts();
// Parcourir les contacts et les écrire dans la feuille
for (var i = 0; i < contacts.length; i++) {
var contact = contacts;
// Récupérer les informations sur le contact
var name = contact.getFullName() || "";
var groupMembership = "";
var contactGroups = contact.getContactGroups();
if (contactGroups !== null) {
groupMembership = contactGroups.map(group => group.getName()).join(", ") || "";
}
var emails = contact.getEmails();
var phones = contact.getPhones();
var addresses = contact.getAddresses();
var organizations = contact.getCompanies();
var websites = contact.getUrls();
// Déterminer l'organisation
var orgName = "";
var orgService = ""; // Déclaré une seule fois
if (organizations.length > 0) {
orgName = organizations[0].getCompanyName() || "";
if (organizations[0].getService && typeof organizations[0].getService === "function") {
orgService = organizations[0].getService() || "";
}
var orgTitle = organizations[0].getJobTitle() || ""; // Déclaré localement
}
// Récupérer les valeurs pour chaque champ
var email1 = emails.length > 0 ? emails[0].getAddress() : "";
var phone1 = phones.length > 0 ? phones[0].getPhoneNumber() : "";
var address1 = addresses.length > 0 ? addresses[0].getAddress() : "";
var address2 = addresses.length > 1 ? addresses[1].getAddress() : "";
// Utiliser la propriété 'address' pour obtenir l'URL du site Web
var website1 = websites.length > 0 ? websites[0].getAddress() : "";
// Écrire les données du contact dans la feuille
sheet.appendRow([
name,
groupMembership,
email1,
phone1,
address1,
address2,
orgName,
orgService,
orgTitle,
website1
]);
}
}
Si quelqu'un peut corriger le script ce serait sympa.
Merci
je débute sous google script et je me suis fait aider par de chatgpt pour le faire.
j'ai commencer un script qui me permet de récupérer les contact google directement dans une feuille Sheets.
il fonctionne mais il ne me remonte pas le champs "service" présent dans le bloc société/entreprise.
voici le code
function getGoogleContacts() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Effacer les données précédentes
sheet.clear();
// Écrire les en-têtes des colonnes
sheet.appendRow([
"Name",
"Group Membership",
"E-mail 1 - Value",
"Phone 1 - Value",
"Address 1 - Formatted",
"Address 2 - Formatted",
"Organization 1 - Name",
"Organization 1 - Service",
"Organization 1 - Title",
"Website 1 - Value"
]);
// Récupérer les contacts Google
var contacts = ContactsApp.getContacts();
// Parcourir les contacts et les écrire dans la feuille
for (var i = 0; i < contacts.length; i++) {
var contact = contacts;
// Récupérer les informations sur le contact
var name = contact.getFullName() || "";
var groupMembership = "";
var contactGroups = contact.getContactGroups();
if (contactGroups !== null) {
groupMembership = contactGroups.map(group => group.getName()).join(", ") || "";
}
var emails = contact.getEmails();
var phones = contact.getPhones();
var addresses = contact.getAddresses();
var organizations = contact.getCompanies();
var websites = contact.getUrls();
// Déterminer l'organisation
var orgName = "";
var orgService = ""; // Déclaré une seule fois
if (organizations.length > 0) {
orgName = organizations[0].getCompanyName() || "";
if (organizations[0].getService && typeof organizations[0].getService === "function") {
orgService = organizations[0].getService() || "";
}
var orgTitle = organizations[0].getJobTitle() || ""; // Déclaré localement
}
// Récupérer les valeurs pour chaque champ
var email1 = emails.length > 0 ? emails[0].getAddress() : "";
var phone1 = phones.length > 0 ? phones[0].getPhoneNumber() : "";
var address1 = addresses.length > 0 ? addresses[0].getAddress() : "";
var address2 = addresses.length > 1 ? addresses[1].getAddress() : "";
// Utiliser la propriété 'address' pour obtenir l'URL du site Web
var website1 = websites.length > 0 ? websites[0].getAddress() : "";
// Écrire les données du contact dans la feuille
sheet.appendRow([
name,
groupMembership,
email1,
phone1,
address1,
address2,
orgName,
orgService,
orgTitle,
website1
]);
}
}
Si quelqu'un peut corriger le script ce serait sympa.
Merci