İşletme kayıtları

listingsapi-js SDK ile premium, sesli ve yinelenen dizin işletme kayıtlarını alın, yinelenen kayıtları gizlemeyi yönetin ve profilleri bağlayın.

İşletme kayıtları, bir konumun her bir dizindeki (Google, Yelp, Bing, Alexa, Siri vb.) varlığını temsil eder. İşletme kayıtlarıyla ilgili tüm metotlar ListingsAPI istemci örneğinde bulunur ve bir konum kimliğiyle sınırlıdır. Sayısal konum kimlikleri otomatik olarak kodlanır; dolayısıyla 16808 ve 'TG9jYXRpb246MTY4MDg=' birbirinin yerine kullanılabilir.

fetchPremiumListings

Bir konumun premium dizinlerdeki işletme kayıtlarını alın: Google, Yelp, Facebook ve temel dizin ağındaki diğer dizinler. id, site, syncStatus, displayStatus ve listingUrl gibi alanları içeren Listing nesnelerinden oluşan bir dizi döndürür.

TypeScript
const listings = await client.fetchPremiumListings(16808); for (const l of listings) {console.log(l.site, l.syncStatus, l.listingUrl);}

Olası syncStatus değerleri arasında SYNCED, PENDING, ERROR ve NOT_CONNECTED bulunur.

fetchVoiceListings

Sesli asistanlardaki işletme kayıtlarını alın: Google Assistant, Amazon Alexa, Apple Siri ve benzeri asistanlar. name, voiceIdentifier ve syncStatus gibi alanları içeren VoiceListing nesnelerinden oluşan bir dizi döndürür.

TypeScript
const voice = await client.fetchVoiceListings(16808); console.log(voice.length + ' voice listings');for (const v of voice) {console.log(v.name, v.syncStatus);}

fetchDuplicateListings

Belirli bir konum için tespit edilen yinelenen işletme kayıtlarını alın. id, site ve listingUrl gibi alanları içeren DuplicateListing nesnelerinden oluşan bir dizi döndürür.

TypeScript
const duplicates = await client.fetchDuplicateListings(16808); for (const d of duplicates) {console.log(d.site, d.listingUrl);}

fetchAllDuplicateListings

İsteğe bağlı etiket filtreleme ve sayfalama seçenekleriyle, hesaptaki tüm konumlarda bulunan yinelenen işletme kayıtlarının toplu özetini alın. fetchDuplicateListings metodundan farklı olarak, düz bir dizi yerine toplu özet nesnesi döndürür.

TypeScript
// All duplicates across the accountconst rollup = await client.fetchAllDuplicateListings(); // Filter by tag and pageconst page2 = await client.fetchAllDuplicateListings({ tag: 'region:west', page: 2 });

Seçenekler

ParametreTürAçıklama
tagstringYalnızca bu etiketi taşıyan konumları içerecek şekilde filtreleyin.
pagenumberSayfa numarası (1'den başlar).

markListingsAsDuplicate

Bir konuma ait bir veya daha fazla işletme kaydı öğesini yinelenen olarak işaretleyin. Platform, işaretlenen profilleri yayından kaldırmayı deneyecektir.

TypeScript
await client.markListingsAsDuplicate(16808, ['listing-item-id-1','listing-item-id-2',]);

Parametreler

ParametreTürAçıklama
locationIdstring | numberİşletme kaydı öğelerinin ait olduğu konum.
listingItemIdsstring[]İşaretlenecek işletme kaydı öğelerinin kimlikleri.

Kontrol edilecek bir başarı bayrağı yoktur. Platform yazma işlemini reddederse istemci bir ValidationError hatası fırlatır; dolayısıyla başarıyla tamamlanan bir promise, işlemin başarılı olduğu anlamına gelir.

markListingsAsNotDuplicate

Yanlışlıkla işaretlenmiş işletme kaydı öğelerinin yinelenen işaretini kaldırın.

TypeScript
await client.markListingsAsNotDuplicate(16808, ['listing-item-id-1',]);

Parametreler

ParametreTürAçıklama
locationIdstring | numberİşletme kaydı öğelerinin ait olduğu konum.
listingItemIdsstring[]İşareti kaldırılacak işletme kaydı öğelerinin kimlikleri.

connectListing

Bir konumu, bağlı bir Google veya Facebook hesabındaki bir işletme kaydıyla ilişkilendirin. Bunu, hesabı bağladıktan ve eşleşen işletme kaydını bulduktan sonra kullanın.

TypeScript
await client.connectListing(16808,'connected-listing-id','connected-account-id',);

Parametreler

ParametreTürAçıklama
locationIdstring | numberİlişkilendirilecek konum.
connectedAccountListingIdstringBağlı hesaptaki işletme kaydının kimliği.
connectedAccountIdstringBağlı Google veya Facebook hesabının kimliği.

disconnectListing

Bir konumun Google veya Facebook işletme kaydıyla ilişkisini kaldırın. Site adı otomatik olarak büyük harfe dönüştürülür; dolayısıyla hem 'google' hem de 'GOOGLE' kullanılabilir.

TypeScript
await client.disconnectListing(16808, 'GOOGLE');

Parametreler

ParametreTürAçıklama
locationIdstring | numberİlişkisi kaldırılacak konum.
sitestringBağlantısı kesilecek dizin; örneğin 'GOOGLE' veya 'FACEBOOK'.

createGmbListing

Bağlı bir Google hesabını kullanarak mevcut bir konum için Google Business Profile işletme kaydı oluşturun.

TypeScript
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',});

Parametreler

ParametreTürAçıklama
locationIdstring | numberİşletme kaydının oluşturulacağı konum.
connectedAccountIdstringBağlı Google hesabının kimliği.
options.folderIdstringİşletme kaydının oluşturulacağı isteğe bağlı klasör.

Tipik denetim iş akışı

listings_audit.ts
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');}