Fichas
Obtén fichas prémium, de voz y duplicadas en directorios, gestiona la supresión de duplicados y conecta perfiles con el SDK listingsapi-js.
Las fichas representan la presencia de una ubicación en cada directorio (Google, Yelp, Bing, Alexa, Siri, etc.). Todos los métodos de fichas están disponibles en la instancia del cliente ListingsAPI y se limitan a un ID de ubicación. Los ID numéricos de ubicación se codifican automáticamente, por lo que 16808 y 'TG9jYXRpb246MTY4MDg=' son intercambiables.
fetchPremiumListings
Obtén las fichas de una ubicación en directorios prémium: Google, Yelp, Facebook y el resto de la red principal de directorios. Devuelve un array de objetos Listing con campos como id, site, syncStatus, displayStatus y listingUrl.
const listings = await client.fetchPremiumListings(16808); for (const l of listings) {console.log(l.site, l.syncStatus, l.listingUrl);}Los valores posibles de syncStatus incluyen SYNCED, PENDING, ERROR y NOT_CONNECTED.
fetchVoiceListings
Obtén las fichas en asistentes de voz: Google Assistant, Amazon Alexa, Apple Siri y asistentes similares. Devuelve un array de objetos VoiceListing con campos como name, voiceIdentifier y syncStatus.
const voice = await client.fetchVoiceListings(16808); console.log(voice.length + ' voice listings');for (const v of voice) {console.log(v.name, v.syncStatus);}fetchDuplicateListings
Obtén las fichas duplicadas detectadas para una ubicación específica. Devuelve un array de objetos DuplicateListing con campos como id, site y listingUrl.
const duplicates = await client.fetchDuplicateListings(16808); for (const d of duplicates) {console.log(d.site, d.listingUrl);}fetchAllDuplicateListings
Obtén un resumen de las fichas duplicadas de todas las ubicaciones de la cuenta, con filtrado por etiquetas y paginación opcionales. A diferencia de fetchDuplicateListings, devuelve un objeto de resumen en lugar de un simple array.
// All duplicates across the accountconst rollup = await client.fetchAllDuplicateListings(); // Filter by tag and pageconst page2 = await client.fetchAllDuplicateListings({ tag: 'region:west', page: 2 });Opciones
markListingsAsDuplicate
Marca uno o más elementos de ficha como duplicados para una ubicación. La plataforma intentará suprimir los perfiles marcados.
await client.markListingsAsDuplicate(16808, ['listing-item-id-1','listing-item-id-2',]);Parámetros
No hay ningún indicador de éxito que comprobar. Si la plataforma rechaza la escritura, el cliente lanza un ValidationError, por lo que una promesa resuelta indica que la operación se ha completado correctamente.
markListingsAsNotDuplicate
Elimina la marca de duplicado de los elementos de ficha que se marcaron por error.
await client.markListingsAsNotDuplicate(16808, ['listing-item-id-1',]);Parámetros
connectListing
Vincula una ubicación a una ficha de una cuenta conectada de Google o Facebook. Usa este método después de conectar la cuenta y encontrar la ficha correspondiente.
await client.connectListing(16808,'connected-listing-id','connected-account-id',);Parámetros
disconnectListing
Desvincula una ubicación de su ficha de Google o Facebook. El nombre del sitio se convierte automáticamente a mayúsculas, por lo que tanto 'google' como 'GOOGLE' funcionan.
await client.disconnectListing(16808, 'GOOGLE');Parámetros
createGmbListing
Crea una ficha de Google Business Profile para una ubicación existente mediante una cuenta conectada de Google.
const result = await client.createGmbListing(16808, 'connected-account-id'); // Optionally place the new listing in a specific folderawait client.createGmbListing(16808, 'connected-account-id', {folderId: 'folder-id',});Parámetros
Flujo de trabajo habitual de auditoría
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); // reads LISTINGSAPI_KEY from envconst LOCATION_ID = 16808; // Acme Dental const [premium, duplicates] = await Promise.all([client.fetchPremiumListings(LOCATION_ID),client.fetchDuplicateListings(LOCATION_ID),]); const unsynced = premium.filter((l) => l.syncStatus !== 'SYNCED');console.log(unsynced.length + ' unsynced listings'); if (duplicates.length > 0) {const ids = duplicates .map((d) => d.id) .filter((id): id is string => Boolean(id));await client.markListingsAsDuplicate(LOCATION_ID, ids);console.log('Marked ' + ids.length + ' duplicates');}Recursos relacionados
- Ubicaciones: consulta los ID de ubicación
- Gestión de errores: errores tipados que lanza cada método
- Casos de uso: procedimiento para auditar fichas