Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"presets": [["@nx/js/babel", { "useBuiltIns": "usage" }]]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"extends": ["../../../../.eslintrc.json"],
|
||||
"ignorePatterns": ["!**/*"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.ts", "*.tsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-google-contacts
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Running lint
|
||||
|
||||
Run `nx lint pieces-google-contacts` to execute the lint via [ESLint](https://eslint.org/).
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "@activepieces/piece-google-contacts",
|
||||
"version": "0.3.15",
|
||||
"dependencies": {
|
||||
"googleapis": "129.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "pieces-google-contacts",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/google-contacts/src",
|
||||
"projectType": "library",
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/google-contacts",
|
||||
"tsConfig": "packages/pieces/community/google-contacts/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/google-contacts/package.json",
|
||||
"main": "packages/pieces/community/google-contacts/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/google-contacts/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/google-contacts/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/google-contacts",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Google Contacts": "Google Contacts",
|
||||
"Stay connected and organized": "Stay connected and organized",
|
||||
"Add Contact": "Add Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add a contact to a Google Contacts account": "Add a contact to a Google Contacts account",
|
||||
"Update a contact in Google Contacts account.": "Update a contact in Google Contacts account.",
|
||||
"Search contacts in Google Contacts account.": "Search contacts in Google Contacts account.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Middle Name",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Job Title",
|
||||
"Company": "Company",
|
||||
"Email": "Email",
|
||||
"Phone Number": "Phone Number",
|
||||
"Resource Name": "Resource Name",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update Field Mask",
|
||||
"Query": "Query",
|
||||
"Read Mask": "Read Mask",
|
||||
"Page Size": "Page Size",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The first name of the contact": "The first name of the contact",
|
||||
"The middle name of the contact": "The middle name of the contact",
|
||||
"The last name of the contact": "The last name of the contact",
|
||||
"The job title of the contact": "The job title of the contact",
|
||||
"The company of the contact": "The company of the contact",
|
||||
"The email address of the contact": "The email address of the contact",
|
||||
"The phone number of the contact": "The phone number of the contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
"A field mask to restrict which fields on the person are updated.": "A field mask to restrict which fields on the person are updated.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "A field mask to restrict which fields on each person are returned.",
|
||||
"The number of results to return. Maximum 30.": "The number of results to return. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Names": "Names",
|
||||
"Job Title / Company": "Job Title / Company",
|
||||
"addresses": "addresses",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "birthdays",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "emailAddresses",
|
||||
"events": "events",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interests",
|
||||
"locales": "locales",
|
||||
"locations": "locations",
|
||||
"memberships": "memberships",
|
||||
"metadata": "metadata",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "names",
|
||||
"nicknames": "nicknames",
|
||||
"occupations": "occupations",
|
||||
"organizations": "organizations",
|
||||
"phoneNumbers": "phoneNumbers",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "sipAddresses",
|
||||
"skills": "skills",
|
||||
"urls": "urls",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "New Or Updated Contact",
|
||||
"Triggers when there is a new or updated contact": "Triggers when there is a new or updated contact"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Verbunden bleiben und organisiert",
|
||||
"Add Contact": "Neuer Kontakt",
|
||||
"Update Contact": "Kontakt aktualisieren",
|
||||
"Search Contacts": "Kontakte suchen",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Add a contact to a Google Contacts account": "Fügen Sie einen Kontakt zu einem Google Contacts-Konto hinzu",
|
||||
"Update a contact in Google Contacts account.": "Aktualisieren Sie einen Kontakt im Google Contacts-Konto.",
|
||||
"Search contacts in Google Contacts account.": "Suche Kontakte in Google Contacts-Konto.",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"First Name": "Vorname",
|
||||
"Middle Name": "Mittlerer Name",
|
||||
"Last Name": "Nachname",
|
||||
"Job Title": "Job Titel",
|
||||
"Company": "Firma",
|
||||
"Email": "E-Mail",
|
||||
"Phone Number": "Telefonnummer",
|
||||
"Resource Name": "Ressourcenname",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Feld-Maske aktualisieren",
|
||||
"Query": "Abfrage",
|
||||
"Read Mask": "Maske lesen",
|
||||
"Page Size": "Einträge pro Seite",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopfzeilen",
|
||||
"Query Parameters": "Abfrageparameter",
|
||||
"Body": "Körper",
|
||||
"Response is Binary ?": "Antwort ist binär?",
|
||||
"No Error on Failure": "Kein Fehler bei Fehler",
|
||||
"Timeout (in seconds)": "Timeout (in Sekunden)",
|
||||
"The first name of the contact": "Der Vorname des Kontakts",
|
||||
"The middle name of the contact": "Der mittlere Name des Kontakts",
|
||||
"The last name of the contact": "Der Nachname des Kontakts",
|
||||
"The job title of the contact": "Der Jobtitel des Kontakts",
|
||||
"The company of the contact": "Das Unternehmen des Kontakts",
|
||||
"The email address of the contact": "Die E-Mail-Adresse des Kontakts",
|
||||
"The phone number of the contact": "Die Telefonnummer des Kontakts",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "Der Ressourcenname für die Person, die vom Server zugewiesen wird. Ein ASCII-String in Form von Personen/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "Die `etag` stellt sicher, dass Kontaktaktualisierungen nur gelten, wenn sich der Kontakt seit dem letzten Abruf nicht geändert hat.",
|
||||
"A field mask to restrict which fields on the person are updated.": "Eine Feldmaske um zu beschränken, welche Felder der Person aktualisiert werden.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "Die Klartext-Abfrage für die Anfrage. Die Abfrage wird verwendet, um Präfix-Phrasen der Felder einer Person zuzuordnen. Zum Beispiel trifft eine Person mit dem Namen \"foo name\" auf Abfragen wie \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., aber nicht \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "Eine Feldmaske um zu beschränken, welche Felder jeder Person zurückgegeben werden.",
|
||||
"The number of results to return. Maximum 30.": "Die Anzahl der Ergebnisse, die zurückgegeben werden sollen. Maximal 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
|
||||
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
|
||||
"Names": "Namen",
|
||||
"Job Title / Company": "Job Titel / Firma",
|
||||
"addresses": "adressen",
|
||||
"ageRanges": "altersbereiche",
|
||||
"biographies": "biographien",
|
||||
"birthdays": "Geburtstage",
|
||||
"calendarUrls": "Kalender Urls",
|
||||
"clientData": "client-Daten",
|
||||
"coverPhotos": "bedeckte Fotos",
|
||||
"emailAddresses": "emailadressen",
|
||||
"events": "veranstaltungen",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interessen",
|
||||
"locales": "locales",
|
||||
"locations": "standorte",
|
||||
"memberships": "mitgliedschaften",
|
||||
"metadata": "metadaten",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "namen",
|
||||
"nicknames": "Spitznamen",
|
||||
"occupations": "Berufe",
|
||||
"organizations": "Organisationen",
|
||||
"phoneNumbers": "phoneNummern",
|
||||
"photos": "fotos",
|
||||
"relations": "verwandte",
|
||||
"sipAddresses": "sipAdressen",
|
||||
"skills": "fertigkeiten",
|
||||
"urls": "urls",
|
||||
"userDefined": "benutzerdefiniert",
|
||||
"GET": "ERHALTEN",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "LÖSCHEN",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "Neuer oder aktualisierter Kontakt",
|
||||
"Triggers when there is a new or updated contact": "Wird ausgelöst, wenn ein neuer oder aktualisierter Kontakt existiert"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Mantente conectado y organizado",
|
||||
"Add Contact": "Añadir contacto",
|
||||
"Update Contact": "Actualizar contacto",
|
||||
"Search Contacts": "Buscar contactos",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Add a contact to a Google Contacts account": "Añadir un contacto a una cuenta de contactos de Google",
|
||||
"Update a contact in Google Contacts account.": "Actualizar un contacto en la cuenta de contactos de Google.",
|
||||
"Search contacts in Google Contacts account.": "Buscar contactos en la cuenta de contactos de Google.",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"First Name": "Nombre",
|
||||
"Middle Name": "Segundo nombre",
|
||||
"Last Name": "Apellido",
|
||||
"Job Title": "Trabajo",
|
||||
"Company": "Empresa",
|
||||
"Email": "E-mail",
|
||||
"Phone Number": "Número de teléfono",
|
||||
"Resource Name": "Nombre del recurso",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Actualizar máscara de campo",
|
||||
"Query": "Consulta",
|
||||
"Read Mask": "Leer máscara",
|
||||
"Page Size": "Tamaño de página",
|
||||
"Method": "Método",
|
||||
"Headers": "Encabezados",
|
||||
"Query Parameters": "Parámetros de consulta",
|
||||
"Body": "Cuerpo",
|
||||
"Response is Binary ?": "¿Respuesta es binaria?",
|
||||
"No Error on Failure": "No hay ningún error en fallo",
|
||||
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
|
||||
"The first name of the contact": "El nombre del contacto",
|
||||
"The middle name of the contact": "El nombre medio del contacto",
|
||||
"The last name of the contact": "El apellido del contacto",
|
||||
"The job title of the contact": "El título del trabajo del contacto",
|
||||
"The company of the contact": "La compañía del contacto",
|
||||
"The email address of the contact": "La dirección de correo electrónico del contacto",
|
||||
"The phone number of the contact": "El número de teléfono del contacto",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "El nombre de recurso para la persona, asignado por el servidor. Una cadena ASCII en forma de personas/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "El `etag` asegura que las actualizaciones de contacto sólo se apliquen si el contacto no ha cambiado desde la última recuperación.",
|
||||
"A field mask to restrict which fields on the person are updated.": "Una máscara de campo para restringir qué campos de la persona se actualizan.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "La consulta de texto plano para la solicitud. La consulta se utiliza para hacer coincidir las frases prefijo de los campos en una persona. Por ejemplo, una persona con el nombre \"foo name\" coincide con consultas como \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., pero no \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "Una máscara de campo para restringir qué campos en cada persona son retornados.",
|
||||
"The number of results to return. Maximum 30.": "El número de resultados a regresar. Máximo 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
|
||||
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
|
||||
"Names": "Nombres",
|
||||
"Job Title / Company": "Trabajo Título / Empresa",
|
||||
"addresses": "direcciones",
|
||||
"ageRanges": "Rangos de edad",
|
||||
"biographies": "biológicos",
|
||||
"birthdays": "cumpleaños",
|
||||
"calendarUrls": "Urls de calendario",
|
||||
"clientData": "datos del cliente",
|
||||
"coverPhotos": "fotos de cobertura",
|
||||
"emailAddresses": "direcciones de email",
|
||||
"events": "eventos",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClientes",
|
||||
"interests": "intereses",
|
||||
"locales": "locales",
|
||||
"locations": "ubicaciones",
|
||||
"memberships": "membresías",
|
||||
"metadata": "metadatos",
|
||||
"miscKeywords": "palabras clave",
|
||||
"names": "nombres",
|
||||
"nicknames": "apodos",
|
||||
"occupations": "ocupaciones",
|
||||
"organizations": "organizaciones",
|
||||
"phoneNumbers": "números de teléfono",
|
||||
"photos": "fotos",
|
||||
"relations": "relaciones",
|
||||
"sipAddresses": "direcciones de sip",
|
||||
"skills": "habilidades",
|
||||
"urls": "urls",
|
||||
"userDefined": "usuario definido",
|
||||
"GET": "RECOGER",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "BORRAR",
|
||||
"HEAD": "LIMPIO",
|
||||
"New Or Updated Contact": "Contacto nuevo o actualizado",
|
||||
"Triggers when there is a new or updated contact": "Dispara cuando hay un contacto nuevo o actualizado"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Rester connecté et organisé",
|
||||
"Add Contact": "Ajouter un contact",
|
||||
"Update Contact": "Mettre à jour le contact",
|
||||
"Search Contacts": "Rechercher dans les contacts",
|
||||
"Custom API Call": "Appel API personnalisé",
|
||||
"Add a contact to a Google Contacts account": "Ajouter un contact à un compte Google Contacts",
|
||||
"Update a contact in Google Contacts account.": "Mettre à jour un contact dans le compte Google Contacts.",
|
||||
"Search contacts in Google Contacts account.": "Rechercher des contacts dans le compte Google Contacts.",
|
||||
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Deuxième prénom",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Titre du poste",
|
||||
"Company": "Entreprise",
|
||||
"Email": "Courriel",
|
||||
"Phone Number": "Numéro de téléphone",
|
||||
"Resource Name": "Nom de la ressource",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Mettre à jour le masque de champ",
|
||||
"Query": "Requête",
|
||||
"Read Mask": "Lire le masque",
|
||||
"Page Size": "Nombre d'élément",
|
||||
"Method": "Méthode",
|
||||
"Headers": "En-têtes",
|
||||
"Query Parameters": "Paramètres de requête",
|
||||
"Body": "Corps",
|
||||
"Response is Binary ?": "La réponse est Binaire ?",
|
||||
"No Error on Failure": "Aucune erreur en cas d'échec",
|
||||
"Timeout (in seconds)": "Délai d'attente (en secondes)",
|
||||
"The first name of the contact": "Le prénom du contact",
|
||||
"The middle name of the contact": "Le prénom du contact",
|
||||
"The last name of the contact": "Le nom de famille du contact",
|
||||
"The job title of the contact": "Le titre du poste du contact",
|
||||
"The company of the contact": "La société du contact",
|
||||
"The email address of the contact": "L'adresse e-mail du contact",
|
||||
"The phone number of the contact": "Le numéro de téléphone du contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "Le nom de la ressource pour la personne, assigné par le serveur. Une chaîne ASCII sous la forme de people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "Le `etag` garantit que les mises à jour de contact s'appliquent seulement si le contact n'a pas changé depuis la dernière récupération.",
|
||||
"A field mask to restrict which fields on the person are updated.": "Un masque de champ pour restreindre quels champs de la personne sont mis à jour.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "La requête en texte brut pour la requête. La requête est utilisée pour faire correspondre les phrases de préfixe des champs sur une personne. Par exemple, une personne ayant le nom \"foo name\" correspond à des requêtes telles que \"f\", \"fo\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., mais pas \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "Un masque de champ pour restreindre les champs sur chaque personne sont retournés.",
|
||||
"The number of results to return. Maximum 30.": "Le nombre de résultats à renvoyer. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
|
||||
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
|
||||
"Names": "Noms",
|
||||
"Job Title / Company": "Titre du poste / Entreprise",
|
||||
"addresses": "Adresses",
|
||||
"ageRanges": "tranches d'âge",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "anniversaires",
|
||||
"calendarUrls": "Urls du calendrier",
|
||||
"clientData": "Données client",
|
||||
"coverPhotos": "CouverturePhotos",
|
||||
"emailAddresses": "Adresses e-mail",
|
||||
"events": "Evénements",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "Intérêts",
|
||||
"locales": "locales",
|
||||
"locations": "localisations",
|
||||
"memberships": "adhésions",
|
||||
"metadata": "métadonnées",
|
||||
"miscKeywords": "mots clés différents",
|
||||
"names": "Noms",
|
||||
"nicknames": "pseudos",
|
||||
"occupations": "métiers",
|
||||
"organizations": "organisations",
|
||||
"phoneNumbers": "Numéros de téléphone",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "Adresses sip",
|
||||
"skills": "Compétences",
|
||||
"urls": "URLs",
|
||||
"userDefined": "Défini par l'utilisateur",
|
||||
"GET": "OBTENIR",
|
||||
"POST": "POSTER",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "EFFACER",
|
||||
"DELETE": "SUPPRIMER",
|
||||
"HEAD": "TÊTE",
|
||||
"New Or Updated Contact": "Nouveau ou mis à jour le contact",
|
||||
"Triggers when there is a new or updated contact": "Déclenche quand il y a un contact nouveau ou mis à jour"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Google Contacts": "Google Contacts",
|
||||
"Stay connected and organized": "Stay connected and organized",
|
||||
"Add Contact": "Add Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add a contact to a Google Contacts account": "Add a contact to a Google Contacts account",
|
||||
"Update a contact in Google Contacts account.": "Update a contact in Google Contacts account.",
|
||||
"Search contacts in Google Contacts account.": "Search contacts in Google Contacts account.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Middle Name",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Job Title",
|
||||
"Company": "Company",
|
||||
"Email": "Email",
|
||||
"Phone Number": "Phone Number",
|
||||
"Resource Name": "Resource Name",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update Field Mask",
|
||||
"Query": "Query",
|
||||
"Read Mask": "Read Mask",
|
||||
"Page Size": "Page Size",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The first name of the contact": "The first name of the contact",
|
||||
"The middle name of the contact": "The middle name of the contact",
|
||||
"The last name of the contact": "The last name of the contact",
|
||||
"The job title of the contact": "The job title of the contact",
|
||||
"The company of the contact": "The company of the contact",
|
||||
"The email address of the contact": "The email address of the contact",
|
||||
"The phone number of the contact": "The phone number of the contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
"A field mask to restrict which fields on the person are updated.": "A field mask to restrict which fields on the person are updated.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "A field mask to restrict which fields on each person are returned.",
|
||||
"The number of results to return. Maximum 30.": "The number of results to return. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Names": "Names",
|
||||
"Job Title / Company": "Job Title / Company",
|
||||
"addresses": "addresses",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "birthdays",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "emailAddresses",
|
||||
"events": "events",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interests",
|
||||
"locales": "locales",
|
||||
"locations": "locations",
|
||||
"memberships": "memberships",
|
||||
"metadata": "metadata",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "names",
|
||||
"nicknames": "nicknames",
|
||||
"occupations": "occupations",
|
||||
"organizations": "organizations",
|
||||
"phoneNumbers": "phoneNumbers",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "sipAddresses",
|
||||
"skills": "skills",
|
||||
"urls": "urls",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "New Or Updated Contact",
|
||||
"Triggers when there is a new or updated contact": "Triggers when there is a new or updated contact"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Google Contacts": "Google Contacts",
|
||||
"Stay connected and organized": "Stay connected and organized",
|
||||
"Add Contact": "Add Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add a contact to a Google Contacts account": "Add a contact to a Google Contacts account",
|
||||
"Update a contact in Google Contacts account.": "Update a contact in Google Contacts account.",
|
||||
"Search contacts in Google Contacts account.": "Search contacts in Google Contacts account.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Middle Name",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Job Title",
|
||||
"Company": "Company",
|
||||
"Email": "Email",
|
||||
"Phone Number": "Phone Number",
|
||||
"Resource Name": "Resource Name",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update Field Mask",
|
||||
"Query": "Query",
|
||||
"Read Mask": "Read Mask",
|
||||
"Page Size": "Ukuran Halaman",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The first name of the contact": "The first name of the contact",
|
||||
"The middle name of the contact": "The middle name of the contact",
|
||||
"The last name of the contact": "The last name of the contact",
|
||||
"The job title of the contact": "The job title of the contact",
|
||||
"The company of the contact": "The company of the contact",
|
||||
"The email address of the contact": "The email address of the contact",
|
||||
"The phone number of the contact": "The phone number of the contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
"A field mask to restrict which fields on the person are updated.": "A field mask to restrict which fields on the person are updated.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "A field mask to restrict which fields on each person are returned.",
|
||||
"The number of results to return. Maximum 30.": "The number of results to return. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Names": "Names",
|
||||
"Job Title / Company": "Job Title / Company",
|
||||
"addresses": "addresses",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "birthdays",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "emailAddresses",
|
||||
"events": "events",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interests",
|
||||
"locales": "locales",
|
||||
"locations": "locations",
|
||||
"memberships": "memberships",
|
||||
"metadata": "metadata",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "names",
|
||||
"nicknames": "nicknames",
|
||||
"occupations": "occupations",
|
||||
"organizations": "organizations",
|
||||
"phoneNumbers": "phoneNumbers",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "sipAddresses",
|
||||
"skills": "skills",
|
||||
"urls": "urls",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "New Or Updated Contact",
|
||||
"Triggers when there is a new or updated contact": "Triggers when there is a new or updated contact"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "常に接続して組織化する",
|
||||
"Add Contact": "連絡先を追加",
|
||||
"Update Contact": "連絡先を更新",
|
||||
"Search Contacts": "連絡先を検索",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Add a contact to a Google Contacts account": "連絡先をGoogleの連絡先アカウントに追加",
|
||||
"Update a contact in Google Contacts account.": "Google Contacts アカウントで連絡先を更新します。",
|
||||
"Search contacts in Google Contacts account.": "Google Contacts アカウントで連絡先を検索します。",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"First Name": "名",
|
||||
"Middle Name": "ミドルネーム",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "役職名",
|
||||
"Company": "会社名",
|
||||
"Email": "Eメールアドレス",
|
||||
"Phone Number": "電話番号",
|
||||
"Resource Name": "リソース名",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "フィールドマスクを更新",
|
||||
"Query": "クエリ",
|
||||
"Read Mask": "マスクを読む",
|
||||
"Page Size": "ページサイズ",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"The first name of the contact": "連絡先の名",
|
||||
"The middle name of the contact": "連絡先のミドルネーム",
|
||||
"The last name of the contact": "連絡先の姓",
|
||||
"The job title of the contact": "連絡先の職名",
|
||||
"The company of the contact": "連絡先の会社",
|
||||
"The email address of the contact": "連絡先のメールアドレス",
|
||||
"The phone number of the contact": "連絡先の電話番号",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "サーバーによって割り当てられた人物のリソース名。people/{person_id} の形式での ASCII 文字列。",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "`etag` は連絡先が最後に取得されてから変更されていない場合にのみ、連絡先の更新が適用されます。",
|
||||
"A field mask to restrict which fields on the person are updated.": "更新対象のフィールドを制限するフィールドマスク。",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "リクエストのプレーンテキストのクエリ クエリは、ユーザのフィールドのプレフィックスフレーズを一致させるために使用されます。 例えば、\"foo name\" という名前の人は、\"f\"、\"fo\"、\"foo\"、\"foo n\"、\"nam\"などのクエリにマッチしますが、\"oo\" はマッチしません。",
|
||||
"A field mask to restrict which fields on each person are returned.": "返されるフィールドを制限するフィールドマスク。",
|
||||
"The number of results to return. Maximum 30.": "返す結果の数。最大30。",
|
||||
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
|
||||
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
|
||||
"Names": "名前",
|
||||
"Job Title / Company": "役職名/企業",
|
||||
"addresses": "アドレス",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "略歴",
|
||||
"birthdays": "誕生日",
|
||||
"calendarUrls": "カレンダーURL",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "カバー写真",
|
||||
"emailAddresses": "メールアドレス",
|
||||
"events": "イベント",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "利益|利益|利益|利益|利益|利益|利益|",
|
||||
"locales": "locales",
|
||||
"locations": "場所",
|
||||
"memberships": "所属する",
|
||||
"metadata": "メタデータ",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "名前",
|
||||
"nicknames": "ニックネーム:",
|
||||
"occupations": "職業について",
|
||||
"organizations": "組織",
|
||||
"phoneNumbers": "電話番号",
|
||||
"photos": "写真",
|
||||
"relations": "リレーションシップ",
|
||||
"sipAddresses": "アドレス",
|
||||
"skills": "スキル",
|
||||
"urls": "URL",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "取得",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "削除",
|
||||
"HEAD": "頭",
|
||||
"New Or Updated Contact": "新規または更新された連絡先",
|
||||
"Triggers when there is a new or updated contact": "新しい連絡先または更新された連絡先がある場合にトリガーします"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Blijf verbonden en georganiseerd",
|
||||
"Add Contact": "Contactpersoon toevoegen",
|
||||
"Update Contact": "Contactpersoon bijwerken",
|
||||
"Search Contacts": "Contactpersonen zoeken",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add a contact to a Google Contacts account": "Een contact toevoegen aan een Google-contacten account",
|
||||
"Update a contact in Google Contacts account.": "Update een contactpersoon in Google Contacten account.",
|
||||
"Search contacts in Google Contacts account.": "Zoek naar contacten in Google Contacten account.",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"First Name": "Voornaam",
|
||||
"Middle Name": "Tweede naam",
|
||||
"Last Name": "Achternaam",
|
||||
"Job Title": "Job titel",
|
||||
"Company": "Bedrijfsnaam",
|
||||
"Email": "E-mail",
|
||||
"Phone Number": "Telefoon nummer",
|
||||
"Resource Name": "Resource naam",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update veldmasker",
|
||||
"Query": "Zoekopdracht",
|
||||
"Read Mask": "Lees Masker",
|
||||
"Page Size": "Paginagrootte",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopteksten",
|
||||
"Query Parameters": "Query parameters",
|
||||
"Body": "Lichaam",
|
||||
"Response is Binary ?": "Antwoord is binair?",
|
||||
"No Error on Failure": "Geen fout bij fout",
|
||||
"Timeout (in seconds)": "Time-out (in seconden)",
|
||||
"The first name of the contact": "De voornaam van het contact",
|
||||
"The middle name of the contact": "De tweede naam van het contact",
|
||||
"The last name of the contact": "De achternaam van de contactpersoon",
|
||||
"The job title of the contact": "De job titel van de contactpersoon",
|
||||
"The company of the contact": "Het bedrijf van de contactpersoon",
|
||||
"The email address of the contact": "Het e-mailadres van de contactpersoon",
|
||||
"The phone number of the contact": "Het telefoonnummer van de contactpersoon",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "De document naam voor de persoon, toegewezen door de server. Een ASCII string in de vorm van mensen /{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "De `etag` zorgt ervoor dat contactupdates alleen van toepassing zijn als de contactpersoon niet gewijzigd is sinds het laatst opgehaald is.",
|
||||
"A field mask to restrict which fields on the person are updated.": "Een veldmasker om te beperken welke velden op de persoon worden bijgewerkt.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "De platte tekstquery voor de aanvraag. De query wordt gebruikt om prefix zinnen van de velden van een persoon te overeenkomen. Bijvoorbeeld, iemand met de naam \"foo name\" komt overeen met vragen zoals \"f\", \"fo\", \"foo\", \"foo n\", \"naam\", enz., maar niet \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "Een veldmasker om te beperken welke velden op elke persoon geretourneerd worden.",
|
||||
"The number of results to return. Maximum 30.": "Het aantal resultaten om weer te geven. Maximale 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
|
||||
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
|
||||
"Names": "Namen",
|
||||
"Job Title / Company": "Job titel / bedrijf",
|
||||
"addresses": "adressen",
|
||||
"ageRanges": "leeftijdsafstand",
|
||||
"biographies": "biografieën",
|
||||
"birthdays": "Verjaardagen",
|
||||
"calendarUrls": "kalenderUrls",
|
||||
"clientData": "clientgegevens",
|
||||
"coverPhotos": "coverFoto's",
|
||||
"emailAddresses": "e-mailadressen",
|
||||
"events": "evenementen",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interesses",
|
||||
"locales": "locales",
|
||||
"locations": "Locaties",
|
||||
"memberships": "lidmaatschappen",
|
||||
"metadata": "metagegevens",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "Naam",
|
||||
"nicknames": "Bijnaam",
|
||||
"occupations": "beroepen",
|
||||
"organizations": "organisaties",
|
||||
"phoneNumbers": "telefoonnummers",
|
||||
"photos": "Foto's",
|
||||
"relations": "relaties",
|
||||
"sipAddresses": "sipAdressen",
|
||||
"skills": "vaardigheden",
|
||||
"urls": "URL's",
|
||||
"userDefined": "Gebruikersgedefinieerd",
|
||||
"GET": "KRIJG",
|
||||
"POST": "POSTE",
|
||||
"PATCH": "BEKIJK",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "VERWIJDEREN",
|
||||
"HEAD": "HOOFD",
|
||||
"New Or Updated Contact": "Nieuw of bijgewerkt contact",
|
||||
"Triggers when there is a new or updated contact": "Triggert wanneer er een nieuw of bijgewerkt contact is"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Mantenha-se conectado e organizado",
|
||||
"Add Contact": "Adicionar contacto",
|
||||
"Update Contact": "Atualizar contato",
|
||||
"Search Contacts": "Pesquisar contatos",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Add a contact to a Google Contacts account": "Adicionar um contato a uma conta do Google Contatos",
|
||||
"Update a contact in Google Contacts account.": "Atualizar um contato na conta do Google Contatos.",
|
||||
"Search contacts in Google Contacts account.": "Pesquisar contatos na conta de Contatos do Google.",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"First Name": "Nome",
|
||||
"Middle Name": "Nome do Meio",
|
||||
"Last Name": "Sobrenome",
|
||||
"Job Title": "Título do Cargo",
|
||||
"Company": "Empresas",
|
||||
"Email": "e-mail",
|
||||
"Phone Number": "Número de telefone",
|
||||
"Resource Name": "Nome do Recurso",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Atualizar máscara de campo",
|
||||
"Query": "Requisição",
|
||||
"Read Mask": "Ler Máscara",
|
||||
"Page Size": "Tamanho da página",
|
||||
"Method": "Método",
|
||||
"Headers": "Cabeçalhos",
|
||||
"Query Parameters": "Parâmetros da consulta",
|
||||
"Body": "Conteúdo",
|
||||
"Response is Binary ?": "A resposta é binária ?",
|
||||
"No Error on Failure": "Nenhum erro no Failure",
|
||||
"Timeout (in seconds)": "Tempo limite (em segundos)",
|
||||
"The first name of the contact": "O primeiro nome do contato",
|
||||
"The middle name of the contact": "O nome do meio do contato",
|
||||
"The last name of the contact": "O último nome do contato",
|
||||
"The job title of the contact": "O título do cargo do contato",
|
||||
"The company of the contact": "A empresa do contato",
|
||||
"The email address of the contact": "O endereço de e-mail do contato",
|
||||
"The phone number of the contact": "O número de telefone do contato",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "O nome do recurso para a pessoa, atribuído pelo servidor. Uma cadeia de caracteres ASCII na forma de pessoas/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "O `etag` garante que as atualizações de contato só sejam aplicadas se o contato não mudar desde a última recuperação.",
|
||||
"A field mask to restrict which fields on the person are updated.": "Uma máscara de campo para restringir quais campos na pessoa são atualizados.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "A consulta de texto simples para o request.A consulta é usada para corresponder a frases de prefixo dos campos em uma pessoa. Por exemplo, uma pessoa com o nome \"nome foo\" corresponde a consultas como \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., mas não \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "Uma máscara de campo para restringir quais campos em cada pessoa é devolvida.",
|
||||
"The number of results to return. Maximum 30.": "O número de resultados a retornar. Máximo 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
|
||||
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
|
||||
"Names": "Nomes",
|
||||
"Job Title / Company": "Título do Trabalho / Empresa",
|
||||
"addresses": "endereços",
|
||||
"ageRanges": "Intervalos",
|
||||
"biographies": "biografias",
|
||||
"birthdays": "Aniversários",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "dadosCliente",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "endereços de e-mail",
|
||||
"events": "Eventos",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imclientes",
|
||||
"interests": "interesses",
|
||||
"locales": "locales",
|
||||
"locations": "localizações",
|
||||
"memberships": "associações",
|
||||
"metadata": "metadados",
|
||||
"miscKeywords": "Palavras-chave misc",
|
||||
"names": "Nomes",
|
||||
"nicknames": "apelidos",
|
||||
"occupations": "ocupações",
|
||||
"organizations": "organizações",
|
||||
"phoneNumbers": "Números de Telefone",
|
||||
"photos": "fotos",
|
||||
"relations": "relações",
|
||||
"sipAddresses": "endereços",
|
||||
"skills": "habilidades",
|
||||
"urls": "urls",
|
||||
"userDefined": "usuáriosDefinidos",
|
||||
"GET": "OBTER",
|
||||
"POST": "POSTAR",
|
||||
"PATCH": "COMPRAR",
|
||||
"PUT": "COLOCAR",
|
||||
"DELETE": "EXCLUIR",
|
||||
"HEAD": "CABEÇA",
|
||||
"New Or Updated Contact": "Novo ou Contato Atualizado",
|
||||
"Triggers when there is a new or updated contact": "Dispara quando há um contato novo ou atualizado"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Google Contacts": "Контакты Google",
|
||||
"Stay connected and organized": "Оставайтесь на связи и организуйте",
|
||||
"Add Contact": "Добавить контакт",
|
||||
"Update Contact": "Обновить контакт",
|
||||
"Search Contacts": "Поиск контактов",
|
||||
"Custom API Call": "Пользовательский вызов API",
|
||||
"Add a contact to a Google Contacts account": "Добавить контакт в аккаунт Google Контакты",
|
||||
"Update a contact in Google Contacts account.": "Изменить контакт в учетной записи Google Contacts.",
|
||||
"Search contacts in Google Contacts account.": "Поиск контактов в аккаунте Google Contacts.",
|
||||
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Отчество",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Заголовок",
|
||||
"Company": "Компания",
|
||||
"Email": "Почта",
|
||||
"Phone Number": "Номер телефона",
|
||||
"Resource Name": "Название ресурса",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Обновить маску поля",
|
||||
"Query": "Запрос",
|
||||
"Read Mask": "Читать маску",
|
||||
"Page Size": "Размер страницы",
|
||||
"Method": "Метод",
|
||||
"Headers": "Заголовки",
|
||||
"Query Parameters": "Параметры запроса",
|
||||
"Body": "Тело",
|
||||
"No Error on Failure": "Нет ошибок при ошибке",
|
||||
"Timeout (in seconds)": "Таймаут (в секундах)",
|
||||
"The first name of the contact": "Имя контакта",
|
||||
"The middle name of the contact": "Фамилия контакта",
|
||||
"The last name of the contact": "Фамилия контакта",
|
||||
"The job title of the contact": "Должность контакта",
|
||||
"The company of the contact": "Компания контакта",
|
||||
"The email address of the contact": "Адрес электронной почты контакта",
|
||||
"The phone number of the contact": "Номер телефона контакта",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "Имя ресурса для человека, назначенного сервером. Строка ASCII в виде people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "`etag` обеспечивает обновление контакта только в том случае, если контакт не изменился с момента последнего извлечения.",
|
||||
"A field mask to restrict which fields on the person are updated.": "Маска поля для ограничения каких полей на человека обновлена.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "Простой текстовый запрос для запроса.Запрос используется для совпадения префиксных фраз полей на человеке. Например, человек с именем \"foo name\" совпадает с запросами, такими как \"f\", \"fo\", \"foo\", \"foo n\", \"nam\" и т.д., но не \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "Маска поля для ограничения полей на каждого человека возвращается.",
|
||||
"The number of results to return. Maximum 30.": "Количество результатов возврата. Максимум 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
|
||||
"Names": "Имена",
|
||||
"Job Title / Company": "Заголовок / Компания",
|
||||
"addresses": "адреса",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "биографии",
|
||||
"birthdays": "дни рождения",
|
||||
"calendarUrls": "URL-адреса календарей",
|
||||
"clientData": "клиентские данные",
|
||||
"coverPhotos": "обложки",
|
||||
"emailAddresses": "адреса электронной почты",
|
||||
"events": "события",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imКлиенты",
|
||||
"interests": "интересы",
|
||||
"locales": "locales",
|
||||
"locations": "местоположения",
|
||||
"memberships": "членство",
|
||||
"metadata": "метаданные",
|
||||
"miscKeywords": "пропущенные ключевые слова",
|
||||
"names": "названий",
|
||||
"nicknames": "псевдоним",
|
||||
"occupations": "профессии",
|
||||
"organizations": "организации",
|
||||
"phoneNumbers": "телефонные номера",
|
||||
"photos": "фото",
|
||||
"relations": "отношения",
|
||||
"sipAddresses": "адреса sipAddresses",
|
||||
"skills": "навыки",
|
||||
"urls": "URL-адреса",
|
||||
"userDefined": "пользовательский",
|
||||
"GET": "ПОЛУЧИТЬ",
|
||||
"POST": "ПОСТ",
|
||||
"PATCH": "ПАТЧ",
|
||||
"PUT": "ПОКУПИТЬ",
|
||||
"DELETE": "УДАЛИТЬ",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "Новый или обновленный контакт",
|
||||
"Triggers when there is a new or updated contact": "Триггеры, когда есть новый или обновленный контакт"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Stay connected and organized",
|
||||
"Add Contact": "Add Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add a contact to a Google Contacts account": "Add a contact to a Google Contacts account",
|
||||
"Update a contact in Google Contacts account.": "Update a contact in Google Contacts account.",
|
||||
"Search contacts in Google Contacts account.": "Search contacts in Google Contacts account.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Middle Name",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Job Title",
|
||||
"Company": "Company",
|
||||
"Email": "Email",
|
||||
"Phone Number": "Phone Number",
|
||||
"Resource Name": "Resource Name",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update Field Mask",
|
||||
"Query": "Query",
|
||||
"Read Mask": "Read Mask",
|
||||
"Page Size": "Page Size",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The first name of the contact": "The first name of the contact",
|
||||
"The middle name of the contact": "The middle name of the contact",
|
||||
"The last name of the contact": "The last name of the contact",
|
||||
"The job title of the contact": "The job title of the contact",
|
||||
"The company of the contact": "The company of the contact",
|
||||
"The email address of the contact": "The email address of the contact",
|
||||
"The phone number of the contact": "The phone number of the contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
"A field mask to restrict which fields on the person are updated.": "A field mask to restrict which fields on the person are updated.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "A field mask to restrict which fields on each person are returned.",
|
||||
"The number of results to return. Maximum 30.": "The number of results to return. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Names": "Names",
|
||||
"Job Title / Company": "Job Title / Company",
|
||||
"addresses": "addresses",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "birthdays",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "emailAddresses",
|
||||
"events": "events",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interests",
|
||||
"locales": "locales",
|
||||
"locations": "locations",
|
||||
"memberships": "memberships",
|
||||
"metadata": "metadata",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "names",
|
||||
"nicknames": "nicknames",
|
||||
"occupations": "occupations",
|
||||
"organizations": "organizations",
|
||||
"phoneNumbers": "phoneNumbers",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "sipAddresses",
|
||||
"skills": "skills",
|
||||
"urls": "urls",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "New Or Updated Contact",
|
||||
"Triggers when there is a new or updated contact": "Triggers when there is a new or updated contact"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"Google Contacts": "Google Contacts",
|
||||
"Stay connected and organized": "Stay connected and organized",
|
||||
"Add Contact": "Add Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Add a contact to a Google Contacts account": "Add a contact to a Google Contacts account",
|
||||
"Update a contact in Google Contacts account.": "Update a contact in Google Contacts account.",
|
||||
"Search contacts in Google Contacts account.": "Search contacts in Google Contacts account.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Middle Name",
|
||||
"Last Name": "Last Name",
|
||||
"Job Title": "Job Title",
|
||||
"Company": "Company",
|
||||
"Email": "Email",
|
||||
"Phone Number": "Phone Number",
|
||||
"Resource Name": "Resource Name",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update Field Mask",
|
||||
"Query": "Query",
|
||||
"Read Mask": "Read Mask",
|
||||
"Page Size": "Phân trang",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"The first name of the contact": "The first name of the contact",
|
||||
"The middle name of the contact": "The middle name of the contact",
|
||||
"The last name of the contact": "The last name of the contact",
|
||||
"The job title of the contact": "The job title of the contact",
|
||||
"The company of the contact": "The company of the contact",
|
||||
"The email address of the contact": "The email address of the contact",
|
||||
"The phone number of the contact": "The phone number of the contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
"A field mask to restrict which fields on the person are updated.": "A field mask to restrict which fields on the person are updated.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "A field mask to restrict which fields on each person are returned.",
|
||||
"The number of results to return. Maximum 30.": "The number of results to return. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Names": "Names",
|
||||
"Job Title / Company": "Job Title / Company",
|
||||
"addresses": "addresses",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "birthdays",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "emailAddresses",
|
||||
"events": "events",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interests",
|
||||
"locales": "locales",
|
||||
"locations": "locations",
|
||||
"memberships": "memberships",
|
||||
"metadata": "metadata",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "names",
|
||||
"nicknames": "nicknames",
|
||||
"occupations": "occupations",
|
||||
"organizations": "organizations",
|
||||
"phoneNumbers": "phoneNumbers",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "sipAddresses",
|
||||
"skills": "skills",
|
||||
"urls": "urls",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Or Updated Contact": "New Or Updated Contact",
|
||||
"Triggers when there is a new or updated contact": "Triggers when there is a new or updated contact"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"Stay connected and organized": "Stay connected and organized",
|
||||
"Add Contact": "Add Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Add a contact to a Google Contacts account": "Add a contact to a Google Contacts account",
|
||||
"Update a contact in Google Contacts account.": "Update a contact in Google Contacts account.",
|
||||
"Search contacts in Google Contacts account.": "Search contacts in Google Contacts account.",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"First Name": "First Name",
|
||||
"Middle Name": "Middle Name",
|
||||
"Last Name": "名字",
|
||||
"Job Title": "Job Title",
|
||||
"Company": "Company",
|
||||
"Email": "电子邮件地址",
|
||||
"Phone Number": "Phone Number",
|
||||
"Resource Name": "资源名称",
|
||||
"Etag": "Etag",
|
||||
"Update Field Mask": "Update Field Mask",
|
||||
"Query": "Query",
|
||||
"Read Mask": "Read Mask",
|
||||
"Page Size": "Page Size",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"The first name of the contact": "The first name of the contact",
|
||||
"The middle name of the contact": "The middle name of the contact",
|
||||
"The last name of the contact": "The last name of the contact",
|
||||
"The job title of the contact": "The job title of the contact",
|
||||
"The company of the contact": "The company of the contact",
|
||||
"The email address of the contact": "The email address of the contact",
|
||||
"The phone number of the contact": "The phone number of the contact",
|
||||
"The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.": "The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.",
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.": "The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
"A field mask to restrict which fields on the person are updated.": "A field mask to restrict which fields on the person are updated.",
|
||||
"The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".": "The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
|
||||
"A field mask to restrict which fields on each person are returned.": "A field mask to restrict which fields on each person are returned.",
|
||||
"The number of results to return. Maximum 30.": "The number of results to return. Maximum 30.",
|
||||
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Names": "Names",
|
||||
"Job Title / Company": "Job Title / Company",
|
||||
"addresses": "addresses",
|
||||
"ageRanges": "ageRanges",
|
||||
"biographies": "biographies",
|
||||
"birthdays": "birthdays",
|
||||
"calendarUrls": "calendarUrls",
|
||||
"clientData": "clientData",
|
||||
"coverPhotos": "coverPhotos",
|
||||
"emailAddresses": "emailAddresses",
|
||||
"events": "events",
|
||||
"externalIds": "externalIds",
|
||||
"genders": "genders",
|
||||
"imClients": "imClients",
|
||||
"interests": "interests",
|
||||
"locales": "locales",
|
||||
"locations": "locations",
|
||||
"memberships": "memberships",
|
||||
"metadata": "metadata",
|
||||
"miscKeywords": "miscKeywords",
|
||||
"names": "names",
|
||||
"nicknames": "nicknames",
|
||||
"occupations": "occupations",
|
||||
"organizations": "organizations",
|
||||
"phoneNumbers": "phoneNumbers",
|
||||
"photos": "photos",
|
||||
"relations": "relations",
|
||||
"sipAddresses": "sipAddresses",
|
||||
"skills": "skills",
|
||||
"urls": "urls",
|
||||
"userDefined": "userDefined",
|
||||
"GET": "获取",
|
||||
"POST": "帖子",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "弹出",
|
||||
"DELETE": "删除",
|
||||
"HEAD": "黑色",
|
||||
"New Or Updated Contact": "New Or Updated Contact",
|
||||
"Triggers when there is a new or updated contact": "Triggers when there is a new or updated contact"
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
||||
import {
|
||||
OAuth2PropertyValue,
|
||||
PieceAuth,
|
||||
createPiece,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { googleContactsAddContactAction } from './lib/action/create-contact';
|
||||
import { googleContactsUpdateContactAction } from './lib/action/update-contact';
|
||||
import { googleContactsSearchContactsAction } from './lib/action/search-contact';
|
||||
import { googleContactsCommon } from './lib/common';
|
||||
import { googleContactNewOrUpdatedContact } from './lib/trigger/new-contact';
|
||||
|
||||
export const googleContactsAuth = PieceAuth.OAuth2({
|
||||
description: '',
|
||||
|
||||
authUrl: 'https://accounts.google.com/o/oauth2/auth',
|
||||
tokenUrl: 'https://oauth2.googleapis.com/token',
|
||||
required: true,
|
||||
scope: ['https://www.googleapis.com/auth/contacts'],
|
||||
});
|
||||
|
||||
export const googleContacts = createPiece({
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/google-contacts.png',
|
||||
categories: [PieceCategory.SALES_AND_CRM],
|
||||
actions: [
|
||||
googleContactsAddContactAction,
|
||||
googleContactsUpdateContactAction,
|
||||
googleContactsSearchContactsAction,
|
||||
createCustomApiCallAction({
|
||||
baseUrl: () => googleContactsCommon.baseUrl,
|
||||
auth: googleContactsAuth,
|
||||
authMapping: async (auth) => ({
|
||||
Authorization: `Bearer ${(auth).access_token}`,
|
||||
}),
|
||||
}),
|
||||
],
|
||||
displayName: 'Google Contacts',
|
||||
description: 'Stay connected and organized',
|
||||
|
||||
authors: [
|
||||
'Abdallah-Alwarawreh',
|
||||
'Salem-Alaa',
|
||||
'kishanprmr',
|
||||
'MoShizzle',
|
||||
'khaledmashaly',
|
||||
'abuaboud',
|
||||
'ikus060',
|
||||
],
|
||||
triggers: [googleContactNewOrUpdatedContact],
|
||||
auth: googleContactsAuth,
|
||||
});
|
||||
@@ -0,0 +1,92 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
AuthenticationType,
|
||||
httpClient,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { googleContactsCommon } from '../common';
|
||||
import { googleContactsAuth } from '../../';
|
||||
|
||||
export const googleContactsAddContactAction = createAction({
|
||||
auth: googleContactsAuth,
|
||||
name: 'add_contact',
|
||||
description: 'Add a contact to a Google Contacts account',
|
||||
displayName: 'Add Contact',
|
||||
props: {
|
||||
firstName: Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
description: 'The first name of the contact',
|
||||
required: true,
|
||||
}),
|
||||
middleName: Property.ShortText({
|
||||
displayName: 'Middle Name',
|
||||
description: 'The middle name of the contact',
|
||||
required: false,
|
||||
}),
|
||||
lastName: Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
description: 'The last name of the contact',
|
||||
required: true,
|
||||
}),
|
||||
jobTitle: Property.ShortText({
|
||||
displayName: 'Job Title',
|
||||
description: 'The job title of the contact',
|
||||
required: false,
|
||||
}),
|
||||
company: Property.ShortText({
|
||||
displayName: 'Company',
|
||||
description: 'The company of the contact',
|
||||
required: false,
|
||||
}),
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email',
|
||||
description: 'The email address of the contact',
|
||||
required: false,
|
||||
}),
|
||||
phoneNumber: Property.ShortText({
|
||||
displayName: 'Phone Number',
|
||||
description: 'The phone number of the contact',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
let requestBody = {
|
||||
names: [
|
||||
{
|
||||
givenName: context.propsValue['firstName'],
|
||||
middleName: context.propsValue['middleName'],
|
||||
familyName: context.propsValue['lastName'],
|
||||
},
|
||||
],
|
||||
};
|
||||
const contact: Record<string, unknown> = {};
|
||||
if (context.propsValue['email']) {
|
||||
contact['emailAddresses'] = [{ value: context.propsValue['email'] }];
|
||||
}
|
||||
|
||||
if (context.propsValue['phoneNumber']) {
|
||||
contact['phoneNumbers'] = [{ value: context.propsValue['phoneNumber'] }];
|
||||
}
|
||||
|
||||
if (context.propsValue['company'] || context.propsValue['jobTitle']) {
|
||||
contact['organizations'] = [
|
||||
{
|
||||
name: context.propsValue['company'] || undefined,
|
||||
title: context.propsValue['jobTitle'] || undefined,
|
||||
},
|
||||
];
|
||||
}
|
||||
requestBody = { ...requestBody, ...contact };
|
||||
const request: HttpRequest<Record<string, unknown>> = {
|
||||
method: HttpMethod.POST,
|
||||
url: `${googleContactsCommon.baseUrl}:createContact`,
|
||||
body: requestBody,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: context.auth.access_token,
|
||||
},
|
||||
};
|
||||
return (await httpClient.sendRequest(request)).body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,88 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
AuthenticationType,
|
||||
httpClient,
|
||||
QueryParams,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { googleContactsCommon } from '../common';
|
||||
import { googleContactsAuth } from '../../';
|
||||
|
||||
export const googleContactsSearchContactsAction = createAction({
|
||||
auth: googleContactsAuth,
|
||||
name: 'search_contact',
|
||||
description: 'Search contacts in Google Contacts account.',
|
||||
displayName: 'Search Contacts',
|
||||
props: {
|
||||
query: Property.ShortText({
|
||||
displayName: 'Query',
|
||||
description: `The plain-text query for the request.The query is used to match prefix phrases of the fields on a person. For example, a person with name "foo name" matches queries such as "f", "fo", "foo", "foo n", "nam", etc., but not "oo n".`,
|
||||
required: true,
|
||||
}),
|
||||
readMask: Property.StaticMultiSelectDropdown({
|
||||
displayName: 'Read Mask',
|
||||
description:
|
||||
'A field mask to restrict which fields on each person are returned.',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'addresses', value: 'addresses' },
|
||||
{ label: 'ageRanges', value: 'ageRanges' },
|
||||
{ label: 'biographies', value: 'biographies' },
|
||||
{ label: 'birthdays', value: 'birthdays' },
|
||||
{ label: 'calendarUrls', value: 'calendarUrls' },
|
||||
{ label: 'clientData', value: 'clientData' },
|
||||
{ label: 'coverPhotos', value: 'coverPhotos' },
|
||||
{ label: 'emailAddresses', value: 'emailAddresses' },
|
||||
{ label: 'events', value: 'events' },
|
||||
{ label: 'externalIds', value: 'externalIds' },
|
||||
{ label: 'genders', value: 'genders' },
|
||||
{ label: 'imClients', value: 'imClients' },
|
||||
{ label: 'interests', value: 'interests' },
|
||||
{ label: 'locales', value: 'locales' },
|
||||
{ label: 'locations', value: 'locations' },
|
||||
{ label: 'memberships', value: 'memberships' },
|
||||
{ label: 'metadata', value: 'metadata' },
|
||||
{ label: 'miscKeywords', value: 'miscKeywords' },
|
||||
{ label: 'names', value: 'names' },
|
||||
{ label: 'nicknames', value: 'nicknames' },
|
||||
{ label: 'occupations', value: 'occupations' },
|
||||
{ label: 'organizations', value: 'organizations' },
|
||||
{ label: 'phoneNumbers', value: 'phoneNumbers' },
|
||||
{ label: 'photos', value: 'photos' },
|
||||
{ label: 'relations', value: 'relations' },
|
||||
{ label: 'sipAddresses', value: 'sipAddresses' },
|
||||
{ label: 'skills', value: 'skills' },
|
||||
{ label: 'urls', value: 'urls' },
|
||||
{ label: 'userDefined', value: 'userDefined' },
|
||||
],
|
||||
},
|
||||
defaultValue: ['names', 'emailAddresses'],
|
||||
}),
|
||||
pageSize: Property.Number({
|
||||
displayName: 'Page Size',
|
||||
description: 'The number of results to return. Maximum 30.',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const qs: QueryParams = {
|
||||
query: context.propsValue['query'],
|
||||
readMask: context.propsValue['readMask'].join(','),
|
||||
};
|
||||
if (context.propsValue['pageSize']) {
|
||||
qs['pageSize'] = String(context.propsValue['pageSize']);
|
||||
}
|
||||
const request: HttpRequest<Record<string, unknown>> = {
|
||||
method: HttpMethod.GET,
|
||||
url: `${googleContactsCommon.baseUrl}:searchContacts`,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: context.auth.access_token,
|
||||
},
|
||||
queryParams: qs,
|
||||
};
|
||||
return (await httpClient.sendRequest(request)).body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,133 @@
|
||||
import {
|
||||
createAction,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
HttpRequest,
|
||||
HttpMethod,
|
||||
AuthenticationType,
|
||||
httpClient,
|
||||
QueryParams,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { googleContactsCommon } from '../common';
|
||||
import { googleContactsAuth } from '../../';
|
||||
|
||||
export const googleContactsUpdateContactAction = createAction({
|
||||
auth: googleContactsAuth,
|
||||
name: 'update_contact',
|
||||
description: 'Update a contact in Google Contacts account.',
|
||||
displayName: 'Update Contact',
|
||||
props: {
|
||||
resourceName: Property.ShortText({
|
||||
displayName: 'Resource Name',
|
||||
description:
|
||||
'The resource name for the person, assigned by the server. An ASCII string in the form of people/{person_id}.',
|
||||
required: true,
|
||||
}),
|
||||
etag: Property.ShortText({
|
||||
displayName: 'Etag',
|
||||
description:
|
||||
"The `etag` ensures contact updates only apply if the contact hasn't changed since last retrieved.",
|
||||
required: true,
|
||||
}),
|
||||
updatePersonFields: Property.StaticMultiSelectDropdown({
|
||||
displayName: 'Update Field Mask',
|
||||
description:
|
||||
'A field mask to restrict which fields on the person are updated.',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{ label: 'Names', value: 'names' },
|
||||
{ label: 'Email', value: 'emailAddresses' },
|
||||
{ label: 'Phone Number', value: 'phoneNumbers' },
|
||||
{ label: 'Job Title / Company', value: 'organizations' },
|
||||
],
|
||||
},
|
||||
defaultValue: ['names', 'emailAddresses'],
|
||||
}),
|
||||
firstName: Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
description: 'The first name of the contact',
|
||||
required: false,
|
||||
}),
|
||||
middleName: Property.ShortText({
|
||||
displayName: 'Middle Name',
|
||||
description: 'The middle name of the contact',
|
||||
required: false,
|
||||
}),
|
||||
lastName: Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
description: 'The last name of the contact',
|
||||
required: false,
|
||||
}),
|
||||
jobTitle: Property.ShortText({
|
||||
displayName: 'Job Title',
|
||||
description: 'The job title of the contact',
|
||||
required: false,
|
||||
}),
|
||||
company: Property.ShortText({
|
||||
displayName: 'Company',
|
||||
description: 'The company of the contact',
|
||||
required: false,
|
||||
}),
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email',
|
||||
description: 'The email address of the contact',
|
||||
required: false,
|
||||
}),
|
||||
phoneNumber: Property.ShortText({
|
||||
displayName: 'Phone Number',
|
||||
description: 'The phone number of the contact',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const resourceName = context.propsValue['resourceName'].substring(6);
|
||||
const requestBody: Record<string, unknown> = {
|
||||
etag: context.propsValue['etag'],
|
||||
};
|
||||
const qs: QueryParams = {
|
||||
updatePersonFields: context.propsValue['updatePersonFields'].join(','),
|
||||
};
|
||||
if (
|
||||
context.propsValue['firstName'] ||
|
||||
context.propsValue['middleName'] ||
|
||||
context.propsValue['lastName']
|
||||
) {
|
||||
requestBody['names'] = [
|
||||
{
|
||||
givenName: context.propsValue['firstName'] || undefined,
|
||||
middleName: context.propsValue['middleName'] || undefined,
|
||||
familyName: context.propsValue['lastName'] || undefined,
|
||||
},
|
||||
];
|
||||
}
|
||||
if (context.propsValue['email']) {
|
||||
requestBody['emailAddresses'] = [{ value: context.propsValue['email'] }];
|
||||
}
|
||||
if (context.propsValue['phoneNumber']) {
|
||||
requestBody['phoneNumbers'] = [
|
||||
{ value: context.propsValue['phoneNumber'] },
|
||||
];
|
||||
}
|
||||
if (context.propsValue['company'] || context.propsValue['jobTitle']) {
|
||||
requestBody['organizations'] = [
|
||||
{
|
||||
name: context.propsValue['company'] || undefined,
|
||||
title: context.propsValue['jobTitle'] || undefined,
|
||||
},
|
||||
];
|
||||
}
|
||||
const request: HttpRequest<Record<string, unknown>> = {
|
||||
method: HttpMethod.PATCH,
|
||||
url: `${googleContactsCommon.baseUrl}${resourceName}:updateContact`,
|
||||
body: requestBody,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: context.auth.access_token,
|
||||
},
|
||||
queryParams: qs,
|
||||
};
|
||||
return (await httpClient.sendRequest(request)).body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
export const googleContactsCommon = {
|
||||
baseUrl: `https://people.googleapis.com/v1/people`,
|
||||
};
|
||||
@@ -0,0 +1,181 @@
|
||||
import {
|
||||
AppConnectionValueForAuthProperty,
|
||||
createTrigger,
|
||||
OAuth2PropertyValue,
|
||||
TriggerStrategy,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
Polling,
|
||||
DedupeStrategy,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { googleContactsAuth } from '../../';
|
||||
import { google } from 'googleapis';
|
||||
import { OAuth2Client } from 'googleapis-common';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof googleContactsAuth>, Record<string, never>> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
items: async ({ store, auth }) => {
|
||||
const authClient = new OAuth2Client();
|
||||
authClient.setCredentials(auth);
|
||||
|
||||
const contactsClient = google.people({ version: 'v1', auth: authClient });
|
||||
|
||||
let nextPageToken;
|
||||
const contactItems: Array<{ data: any; epochMilliSeconds: number }> = [];
|
||||
|
||||
do {
|
||||
const response: any = await contactsClient.people.connections.list({
|
||||
resourceName: 'people/me',
|
||||
pageToken: nextPageToken,
|
||||
pageSize: 100,
|
||||
sortOrder: 'LAST_MODIFIED_DESCENDING',
|
||||
personFields: [
|
||||
'addresses',
|
||||
'ageRanges',
|
||||
'biographies',
|
||||
'birthdays',
|
||||
'calendarUrls',
|
||||
'clientData',
|
||||
'coverPhotos',
|
||||
'emailAddresses',
|
||||
'events',
|
||||
'externalIds',
|
||||
'genders',
|
||||
'imClients',
|
||||
'interests',
|
||||
'locales',
|
||||
'locations',
|
||||
'memberships',
|
||||
'metadata',
|
||||
'miscKeywords',
|
||||
'names',
|
||||
'nicknames',
|
||||
'occupations',
|
||||
'organizations',
|
||||
'phoneNumbers',
|
||||
'photos',
|
||||
'relations',
|
||||
'sipAddresses',
|
||||
'skills',
|
||||
'urls',
|
||||
'userDefined',
|
||||
].join(),
|
||||
});
|
||||
|
||||
for (const contact of response.data.connections || []) {
|
||||
if (contact.metadata?.deleted !== true) {
|
||||
contactItems.push({
|
||||
data: contact,
|
||||
epochMilliSeconds: dayjs(
|
||||
contact.metadata?.sources?.[0].updateTime
|
||||
).valueOf(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
nextPageToken = response.data.nextPageToken;
|
||||
} while (nextPageToken);
|
||||
|
||||
return contactItems;
|
||||
},
|
||||
};
|
||||
|
||||
export const googleContactNewOrUpdatedContact = createTrigger({
|
||||
auth: googleContactsAuth,
|
||||
name: 'new_or_updated_contact',
|
||||
displayName: 'New Or Updated Contact',
|
||||
description: 'Triggers when there is a new or updated contact',
|
||||
props: {},
|
||||
sampleData: {
|
||||
resourceName: 'people/c4278485694217203807',
|
||||
etag: '%EiMBAgMFBgcICQoLDA0ODxATFBUWGSEiIyQlJicuNDU3PT4/QBoEAQIFByIMZFVwNlJPNEVKUzg9',
|
||||
metadata: {
|
||||
sources: [
|
||||
{
|
||||
type: 'CONTACT',
|
||||
id: '3b603c120c68305f',
|
||||
etag: '#dUp6RO4EJS8=',
|
||||
updateTime: '2023-01-30T14:35:18.142565Z',
|
||||
},
|
||||
],
|
||||
objectType: 'PERSON',
|
||||
},
|
||||
names: [
|
||||
{
|
||||
metadata: {
|
||||
primary: true,
|
||||
source: {
|
||||
type: 'CONTACT',
|
||||
id: '3b603c120c68305f',
|
||||
},
|
||||
},
|
||||
displayName: 'Shahed Mashni',
|
||||
familyName: 'Mashni',
|
||||
givenName: 'Shahed',
|
||||
displayNameLastFirst: 'Mashni, Shahed',
|
||||
unstructuredName: 'Shahed Mashni',
|
||||
},
|
||||
],
|
||||
photos: [
|
||||
{
|
||||
metadata: {
|
||||
primary: true,
|
||||
source: {
|
||||
type: 'CONTACT',
|
||||
id: '3b603c120c68305f',
|
||||
},
|
||||
},
|
||||
url: 'https://lh3.googleusercontent.com/cm/AAkddurmZojs4vCcxrpkfSxH9tnqcH-hI82ESDnwv6eq86nZeLStcjYEIe_TCx8r8g5Y=s100',
|
||||
default: true,
|
||||
},
|
||||
],
|
||||
memberships: [
|
||||
{
|
||||
metadata: {
|
||||
source: {
|
||||
type: 'CONTACT',
|
||||
id: '3b603c120c68305f',
|
||||
},
|
||||
},
|
||||
contactGroupMembership: {
|
||||
contactGroupId: 'myContacts',
|
||||
contactGroupResourceName: 'contactGroups/myContacts',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
type: TriggerStrategy.POLLING,
|
||||
async onEnable(ctx) {
|
||||
return await pollingHelper.onEnable(polling, {
|
||||
store: ctx.store,
|
||||
auth: ctx.auth,
|
||||
propsValue: {},
|
||||
});
|
||||
},
|
||||
async onDisable(ctx) {
|
||||
return await pollingHelper.onEnable(polling, {
|
||||
store: ctx.store,
|
||||
auth: ctx.auth,
|
||||
propsValue: {},
|
||||
});
|
||||
},
|
||||
async run(ctx) {
|
||||
return await pollingHelper.poll(polling, {
|
||||
store: ctx.store,
|
||||
auth: ctx.auth,
|
||||
propsValue: {},
|
||||
files: ctx.files,
|
||||
});
|
||||
},
|
||||
test: async (ctx) => {
|
||||
return await pollingHelper.test(polling, {
|
||||
store: ctx.store,
|
||||
auth: ctx.auth,
|
||||
propsValue: {},
|
||||
files: ctx.files,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
],
|
||||
"compilerOptions": {
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user