Akun terhubung
Semua endpoint akun terhubung: contoh cURL, Python, Node; koneksi Google/Facebook, daftar akun, cocokkan/tautkan profil bisnis, folder, buat GMB, putuskan.
Akun terhubung adalah pemberian izin OAuth dari pemilik Google Business Profile atau Facebook Pages yang memungkinkan API membaca dan mengelola profil bisnis yang dapat diakses akun tersebut. Resource ini mencakup tiga tugas: membuat tautan OAuth, mencocokkan atau menautkan profil bisnis akun ke lokasi Anda, dan memutuskan koneksi tersebut. Kedua operasi baca GET untuk daftar dan detail dapat menggunakan kunci Read (baca); setiap operasi POST, termasuk pengambilan profil bisnis yang hanya membaca data, memerlukan kunci Write (tulis), dan penggunaan kunci Read untuk operasi tulis menghasilkan HTTP 400 dengan SY90016.
Setiap contoh di bawah mengasumsikan bahwa klien dibuat satu kali, seperti yang ditunjukkan pada contoh pertama, dan membaca LISTINGSAPI_KEY dari lingkungan. ID yang digunakan adalah UUID connectedAccountId dari endpoint daftar dan ID lokasi dalam base64 (TG9jYXRpb246MTgwMDI4OQ==); jangan pernah menerapkan pengodean URL pada keduanya.
Ringkasan endpoint
Buat tautan koneksi Google
POST /connected-accounts/connect-google
Mengembalikan URL OAuth dengan masa berlaku singkat. Arahkan pemilik akun ke URL tersebut; Google akan mengarahkan mereka kembali ke successUrl atau errorUrl Anda. Tautan ini dibatasi pada akun pemilik kunci API, sehingga body hanya memuat dua URL pengalihan Anda. Menerbitkan ulang tautan untuk akun yang izinnya telah kedaluwarsa akan memperbarui koneksi yang ada tanpa membuat duplikat.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/connect-google \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "successUrl": "https://app.example.com/connect/google/success", "errorUrl": "https://app.example.com/connect/google/error" }}'{ "data": { "bulkConnectLinkForGoogle": { "success": true, "url": "https://connect.example.com/oauth?token=8f3c1d92-...", "errors": null } }}url di atas adalah nilai contoh. Arahkan pemilik akun ke url yang dikembalikan dalam respons Anda sendiri.
Tautan berlaku selama 24 jam. errors hanya diisi jika pembuatan gagal, jadi pastikan url tidak bernilai null. Body tanpa struktur bertingkat, atau body yang memuat accountId, ditolak dengan HTTP 400.
Buat tautan koneksi Facebook
POST /connected-accounts/connect-facebook
Operasi yang setara untuk Facebook, dengan body yang sama. Selama proses ini, pemilik akun menerima ketentuan Facebook dan memberikan izin pengelolaan halaman yang diperlukan API; jika mereka melewatkan suatu izin, koneksi tidak dapat melakukan sinkronisasi, jadi terbitkan ulang tautan dan minta mereka memberikan persetujuan kembali.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/connect-facebook \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "successUrl": "https://app.example.com/connect/facebook/success", "errorUrl": "https://app.example.com/connect/facebook/error" }}'{ "data": { "bulkConnectLinkForFacebook": { "success": true, "url": "https://connect.example.com/oauth?token=8f3c1d92-...", "errors": null } }}url di atas adalah nilai contoh. Arahkan pemilik akun ke url yang dikembalikan dalam respons Anda sendiri.
Kunci responsnya adalah bulkConnectLinkForFacebook; selebihnya, baca respons dengan cara yang persis sama seperti untuk tautan Google. Setelah pemilik akun menyelesaikan prosesnya, akun muncul di endpoint daftar sebagai FacebookAccount.
Buat tautan koneksi untuk satu lokasi
POST /locations/oauth_connect_url
Gunakan ini jika Anda sudah mengetahui lokasi yang akan dihubungkan oleh pemilik. Tautan terikat pada lokasi yang Anda tentukan, sehingga tidak ada langkah pencocokan setelahnya: saat pemilik memberikan persetujuan, kredensial langsung dikaitkan dengan lokasi tersebut. Kedua tautan massal di atas menghubungkan seluruh akun.
curl -X POST https://listingsapi.com/api/v4/locations/oauth_connect_url \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "site": "GOOGLE", "successUrl": "https://app.example.com/locations/1800289/connected", "errorUrl": "https://app.example.com/locations/1800289/connect-failed" }}'{ "data": { "createConnectUrl": { "success": true, "url": "https://connect.example.com/oauth?token=8f3c1d92-...", "errors": null } }}url di atas adalah nilai pengganti. Arahkan pemilik ke url yang dikembalikan dalam respons Anda sendiri.
Tautan hanya dapat digunakan sekali, jadi buat tautan baru untuk setiap percobaan alih-alih menyimpannya dalam cache. URL pengalihan yang relatif atau tidak dapat diurai menghasilkan respons success: true dengan null url, jadi periksa url, bukan hanya success. Kunci yang tidak diizinkan mengakses lokasi ini mendapatkan respons 403 dengan SY90003. SDK otomatis mengubah site menjadi huruf kapital.
Tampilkan daftar akun yang terhubung
GET /connected-accounts
Mengembalikan semua akun yang telah diotorisasi pada akun API Anda, beserta kondisi koneksi dan jumlah lokasi yang terhubung ke setiap akun. Hasilnya berupa halaman berbasis offset: records[] ditambah pageInfo.totalRecords, dengan paginasi menggunakan parameter query page dan perPage yang tidak bersarang. Urutan ditetapkan berdasarkan email akun secara menaik.
curl "https://listingsapi.com/api/v4/connected-accounts?publisher=GoogleAccount&status=Connected&page=1&perPage=20" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "connectedAccountsInfo": { "pageInfo": { "hasNextPage": false, "hasPreviousPage": false, "totalPages": 1, "totalRecords": 1 }, "records": [ { "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountType": "GoogleAccount", "email": "owner@brightsmile-dental.com", "status": "CONNECTED", "connectivityIssue": null, "connectedLocationsCount": 0, "requestMatchesStatus": "MATCH_COMPLETED", "lastFetchMatchesRequestedAt": "2026-07-06 21:43:07 UTC" } ] } }}Pilih rekaman yang nilai email-nya merujuk pada pemilik yang memberikan persetujuan, lalu simpan connectedAccountId-nya; setiap pemanggilan berikutnya menggunakan nilai tersebut. Apa pun selain keempat parameter query tersebut diabaikan, bukan ditolak, sehingga pageInfo dalam JSON mengembalikan halaman 1 tanpa pemberitahuan.
Filter status dan field status pada rekaman menggunakan kumpulan nilai yang berbeda. Menggunakan kembali CONNECTED sebagai filter merupakan nilai enum yang tidak valid dan menghasilkan respons 400.
Dapatkan detail satu akun
GET /connected-accounts/{connectedAccountId}/details
Mengembalikan field yang sama dengan satu rekaman dalam daftar, dengan cakupan satu akun. Gunakan ini untuk memeriksa requestMatchesStatus secara berkala setelah memicu pencocokan, atau untuk memeriksa status dan connectivityIssue sebelum mengirim pembaruan melalui akun tersebut.
curl https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/details \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "connectedAccountDetails": { "details": { "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountType": "GoogleAccount", "status": "CONNECTED", "connectivityIssue": null, "connectedLocationsCount": 0, "requestMatchesStatus": "MATCH_COMPLETED" } } }}Rekaman berada satu tingkat di bawah pada data.connectedAccountDetails.details. requestMatchesStatus berubah dari MATCH_IN_PROGRESS menjadi MATCH_COMPLETED saat saran sudah siap. Selesai berarti proses pencocokan telah berakhir, bukan berarti ada yang sudah ditautkan: connectedLocationsCount tetap bernilai 0 sampai Anda mengonfirmasi atau menghubungkan profil bisnis.
Ambil profil bisnis yang dapat diakses oleh suatu akun
POST /connected-accounts/connected-account-listings
Menampilkan semua profil bisnis Google Business Profile atau Facebook yang dapat diakses oleh akun tersebut, baik yang sudah maupun yang belum ditautkan ke salah satu lokasi Anda. id pada setiap rekaman adalah connectedAccountListingId yang digunakan oleh connect-listing dan create-location-from-listing. Ini adalah POST yang hanya membaca data, dan mengembalikan halaman berbasis offset: records[] ditambah pageInfo, dengan paginasi menggunakan kunci page dan perPage yang tidak bersarang dalam body.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/connected-account-listings \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "perPage": 50, "locationInfo": "William St" }'{ "data": { "connectedAccountListings": { "pageInfo": { "hasNextPage": false, "totalPages": 1, "totalRecords": 60 }, "records": [ { "id": "R21iQnVsa0RhdGFMYWtlOjA2MDQ4NmExLTA0NzQtNDc4NS1iMjNhLTBkOGM4MzhmNGQ5OA==", "accountTypeName": "Google", "locationName": "Trial", "address": "123 William St, NY 10038, Manhattan, US", "phone": "(718) 667-7787", "liveLink": null } ] } }}Telusuri seluruh hasil per halaman menggunakan pageInfo.hasNextPage dan pageInfo.totalPages. SDK otomatis menempatkan connectedAccountId dalam body, sehingga hal ini hanya memengaruhi pemanggilan REST yang ditulis secara manual.
Picu pencocokan
POST /connected-accounts/trigger-matches
Memasukkan tugas ke antrean untuk mengambil setiap profil yang dapat diakses oleh akun-akun yang ditentukan dan memasangkan masing-masing profil dengan salah satu lokasi Anda. Pencocokan mempertimbangkan setiap lokasi aktif yang tidak diarsipkan dan belum terhubung. Proses ini hanya menyimpan saran; tidak ada yang dihubungkan sampai Anda mengonfirmasi.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/trigger-matches \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "connectedAccountIds": ["4f712c17-4f95-42dd-90f4-97171a2e67b5"] } }'{ "data": { "connectedAccountsTriggerMatches": { "success": true, "failedIds": null } }}success: true berarti tugas telah dimasukkan ke antrean, bukan berarti pencocokan telah selesai. Akun yang tidak dapat dimasukkan ke antrean tercantum dalam failedIds dan success bernilai false. Lakukan polling pada endpoint detail hingga requestMatchesStatus bernilai MATCH_COMPLETED sebelum membaca saran; polling setiap 15 detik dengan perulangan terbatas menjaga penggunaan paket Launch dalam batas 10 permintaan per menit.
Baca saran koneksi
GET /connected-accounts/{connectedAccountId}/connection-suggestions
Mengembalikan pasangan yang diusulkan oleh proses pencocokan: lokasi Anda di satu sisi (locationInfo, dengan locationId sebagai databaseId) dan profil bisnis di platform publikasi di sisi lain (suggestedLocationInfo). Hasil ini menggunakan paginasi berbasis offset dengan parameter query page dan perPage yang tidak bersarang; urutan ditetapkan berdasarkan informasi lokasi secara menaik.
curl "https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/connection-suggestions?page=1&perPage=20" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "connectionSuggestionsForAccount": { "pageInfo": { "hasNextPage": false, "totalPages": 1, "totalRecords": 2 }, "records": [ { "accountType": "GMB", "matchedDataDatabaseId": "0d5e306f-0da0-46e3-929f-fd3c67ccd8cc", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "locationId": "73415", "locationInfo": { "name": "My Business", "city": "Lincoln", "stateIso": "NE" }, "suggestedLocationInfo": { "locationInfo": { "name": "My Business", "city": "Lincoln" } } } ] } }}Saran tidak memiliki id. Simpan matchedDataDatabaseId dan accountType bersama-sama; confirm-matches memerlukan keduanya untuk membentuk id-nya. Jika Anda membaca terlalu awal, sebelum MATCH_COMPLETED, endpoint mengembalikan records: [] dengan totalRecords: 0, yang terlihat sama persis seperti "tidak ada kecocokan".
Konfirmasi kecocokan
POST /connected-accounts/confirm-matches
Menerima saran yang Anda setujui dan membuat koneksi aktif. Setiap id merupakan hasil pengodean base64 dari <MatchRecordType>:<matchedDataDatabaseId>, dengan tipe yang dipilih dari tabel di atas. Akun ditentukan dari rekaman, sehingga tidak ada field connectedAccountId; field yang tidak dikenal di dalam input ditolak dengan status 400.
# base64 of GmbLocationMatchedData:0d5e306f-0da0-46e3-929f-fd3c67ccd8cccurl -X POST https://listingsapi.com/api/v4/connected-accounts/confirm-matches \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "matchRecordIds": ["R21iTG9jYXRpb25NYXRjaGVkRGF0YTowZDVlMzA2Zi0wZGEwLTQ2ZTMtOTI5Zi1mZDNjNjdjY2Q4Y2M="] } }'{ "data": { "confirmConnectMatches": { "success": true, "failedIds": null } }}failedIds berisi nilai matchedDataDatabaseId yang telah didekode dan tidak dapat dikonfirmasi, seperti rekaman yang sudah digunakan atau lokasi yang diarsipkan setelah pencocokan, jadi cocokkan nilai tersebut kembali dengan rekaman saran. Saran yang tidak dikirim dibiarkan tanpa perubahan. Konfirmasi menghubungkan lokasi ke profil bisnis; tindakan ini tidak dengan sendirinya mengirim data ke platform publikasi.
Hubungkan satu profil bisnis ke lokasi
POST /connected-accounts/connect-listing
Menghubungkan satu profil bisnis yang sudah Anda pilih ke satu lokasi, tanpa saran atau langkah konfirmasi. Gunakan ini ketika hasil pencocokan ambigu, misalnya dua toko yang berdekatan dengan nama serupa, dan operator memilih profil yang tepat dari profil bisnis milik akun tersebut.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/connect-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountListingId": "R21iQnVsa0RhdGFMYWtlOjA2MDQ4NmExLTA0NzQtNDc4NS1iMjNhLTBkOGM4MzhmNGQ5OA==" }}'{ "data": { "connectListing": { "success": true, "message": null } }}Kegagalan menghubungkan mengembalikan success: false dengan message yang bukan null, misalnya Listing record not found ketika id profil bisnis tidak ditemukan, atau catatan bahwa profil bisnis sudah terhubung ke lokasi lain. Di kedua SDK, metode ini berada pada resource listings, bukan pada akun yang terhubung.
Putuskan koneksi satu profil bisnis dari lokasi
POST /connected-accounts/disconnect-listing
Memutus koneksi antara satu lokasi dan satu platform publikasi. Lokasi beserta datanya tetap ada; hanya sinkronisasi keluar ke platform publikasi tersebut yang berhenti. Ini bukan endpoint untuk operasi massal, jadi lakukan perulangan untuk setiap lokasi. Untuk mengalihkan toko ke akun Google lain, putuskan koneksi di sini terlebih dahulu, lalu lakukan pencocokan atau hubungkan melalui akun baru.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/disconnect-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "site": "GOOGLE" } }'{ "data": { "disconnectConnectedAccountsLocations": { "clientMutationId": null, "success": true, "errors": null } }}Jika site maupun providerId tidak dikirim, endpoint mengembalikan SY10056. Untuk lokasi yang tidak memiliki koneksi aktif ke situs tersebut, endpoint mengembalikan SY10057 alih-alih melaporkan keberhasilan tanpa indikasi bahwa tidak ada koneksi, sehingga success: true benar-benar berarti koneksi telah dihapus. SDK hanya menerima site dan mengubahnya menjadi huruf kapital.
Membuat lokasi dari profil bisnis
POST /connected-accounts/create-location-from-listing
Pencocokan hanya memasangkan profil bisnis dengan lokasi yang sudah Anda miliki. Untuk profil bisnis yang belum memiliki lokasi, tindakan ini membuat lokasi dari data platform publikasi dan langsung menautkannya ke profil bisnis tersebut. Impor dari Google mencakup nama, alamat, koordinat, telepon, situs web, deskripsi, jam operasional reguler dan khusus, kategori, tanggal pembukaan, kode toko, dan zona waktu, serta metode pembayaran dan tautan media sosial yang diambil dari atribut Google pada profil bisnis. Impor dari Facebook mencakup nama, lokasi, jam operasional, kategori, deskripsi, dan informasi kontak.
Untuk impor dari Google, data tidak dikirim ulang ke Google, sehingga profil bisnisnya tetap berstatus IN_PROGRESS hingga pembaruan lokasi pertama Anda dipublikasikan ke profil bisnis tersebut. Data dikirim ke setiap platform publikasi lainnya seperti biasa, dan endpoint ini tidak menerima cakupan situs, sehingga lokasi dibuat untuk seluruh platform publikasi di akun Anda. Batasi cakupannya dengan enabledSiteIds tepat setelah pembuatan, dan segera kirim pembaruan tersebut: item pesanan untuk platform publikasi lainnya dibuat tidak lama setelah lokasi dibuat, dan pembaruan tersebut tidak menarik kembali item yang sudah dibuat.
Kedua SDK belum menyediakan metode untuk endpoint ini, sehingga contoh Python dan Node memanggil REST dengan header yang sama.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/create-location-from-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountListingId": "R21iQnVsa0RhdGFMYWtlOjA2MDQ4NmExLTA0NzQtNDc4NS1iMjNhLTBkOGM4MzhmNGQ5OA==" }}'{ "data": { "createLocationFromConnectedAccountListing": { "success": true, "locationId": 88277, "errors": null } }}locationId adalah databaseId biasa milik lokasi baru. Jika gagal, success bernilai false, locationId bernilai null, dan errors memuat kode alasan seperti SY81067 (id profil bisnis tidak ditemukan); penyebab lainnya adalah profil bisnis yang sudah ditautkan ke lokasi lain, atau akun yang kredensialnya telah kedaluwarsa. Setelah dibuat, kelola lokasi tersebut seperti lokasi lainnya.
Menampilkan daftar folder akun Google
GET /connected-accounts/{connectedAccountId}/folders
Mengembalikan grup akun (folder) Google Business Profile yang dapat diakses oleh akun Google yang terhubung. Gunakan endpoint ini sebelum membuat profil bisnis GMB agar profil baru ditempatkan dalam grup yang diharapkan pemiliknya. Respons berupa array biasa di bawah getFoldersUnderGoogleAccount, bukan halaman. Path ini hanya berlaku untuk koneksi GoogleAccount.
curl https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/folders \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "getFoldersUnderGoogleAccount": [ { "folderId": "accounts/104890024806530350198", "folderName": "Bright Smile Dental", "locationCount": null } ] }}Gunakan folderId tanpa perubahan; nilainya adalah string accounts/{id}, bukan angka. locationCount dapat bernilai null ketika Google tidak melaporkannya, jadi perlakukan sebagai opsional.
Membuat Google Business Profile untuk lokasi
POST /locations/create/gmb-listing
Membuat profil bisnis Google yang benar-benar baru untuk lokasi yang belum memilikinya, di bawah akun Google yang terhubung, dan secara opsional di dalam folder. Berbeda dengan connect-listing, yang menautkan profil bisnis yang sudah ada. Lokasi harus sudah memiliki nama, alamat, dan telepon, dan setiap lokasi hanya boleh memiliki satu profil bisnis Google.
curl -X POST https://listingsapi.com/api/v4/locations/create/gmb-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "folderId": "accounts/104890024806530350198" }}'{ "data": { "createGmbListingForLocation": { "clientMutationId": null, "success": true, "errors": null } }}Pembuatan berlangsung secara asinkron: success: true berarti permintaan telah diterima, dan Google meninjau profil baru sebelum dipublikasikan. Ketika success bernilai false, errors menjelaskan alasannya: field wajib belum diisi, profil bisnis Google sudah ada, lokasi telah diarsipkan, atau akun tidak aktif.
Putuskan koneksi seluruh akun Google
POST /connected-accounts/disconnect-google
Memutus koneksi untuk seluruh akun: setiap lokasi yang ditautkan melalui akun tersebut berhenti disinkronkan. Tidak ada field locationIds; untuk memutus koneksi satu lokasi dan mempertahankan akun, gunakan disconnect-listing. Gunakan operasi ini saat klien berhenti menggunakan layanan, atau saat pemberian akses yang bermasalah tidak dapat dihapus dan Anda ingin memulai ulang dengan tautan koneksi baru.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/disconnect-google \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "connectedAccountId": "d2397854-52c2-41d7-95f1-b90cba16498d" } }'{ "data": { "gmbBulkDisconnect": { "success": true } }}success: true dikembalikan bahkan untuk connectedAccountId yang tidak dikenal, sehingga artinya adalah "permintaan telah diproses", bukan "koneksi aktif telah dihapus". Ambil kembali daftar akun yang terhubung jika Anda memerlukan kepastian.
Putuskan koneksi seluruh akun Facebook
POST /connected-accounts/disconnect-facebook
Operasi yang setara untuk Facebook dengan body yang sama. Halaman yang ditautkan melalui akun tersebut berhenti disinkronkan dan interaksi Facebook berhenti muncul.
curl -X POST https://listingsapi.com/api/v4/connected-accounts/disconnect-facebook \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "connectedAccountId": "d2397854-52c2-41d7-95f1-b90cba16498d" } }'{ "data": { "fbBulkDisconnect": { "success": true } }}Kunci responsnya adalah fbBulkDisconnect. Seperti pada Google, success: true untuk id yang tidak dikenal berarti telah diproses, bukan telah dihapus.
Putuskan koneksi satu lokasi dari platform publikasi
POST /locations/oauth-disconnect
Bagian pemutusan koneksi dari alur OAuth per lokasi. Ini adalah operasi yang sama dengan disconnect-listing yang tersedia melalui jalur kedua: body input identik dan kunci respons disconnectConnectedAccountsLocations sama. Pilih jalur yang lebih mudah dipahami dalam integrasi Anda.
curl -X POST https://listingsapi.com/api/v4/locations/oauth-disconnect \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "site": "GOOGLE" } }'{ "data": { "disconnectConnectedAccountsLocations": { "clientMutationId": null, "success": true, "errors": null } }}Aturan SY10056 dan SY10057 yang sama berlaku, dan kunci yang tidak diizinkan mengakses lokasi ini akan menerima 403 dengan SY90003. Pemutusan koneksi mempertahankan lokasi dan datanya secara utuh; hanya sinkronisasi keluar ke platform publikasi tersebut yang berhenti. Arahkan pemilik kembali melalui URL koneksi, atau jalankan pencocokan dan connect-listing, untuk menautkan profil bisnis yang benar setelahnya.
Kesalahan yang akan Anda temui
Permintaan dengan format yang salah dan kunci yang tidak valid menghasilkan respons 4xx dengan errors[] di tingkat teratas yang nilai message-nya diawali dengan kode tersebut. Operasi tulis juga dapat mengembalikan 200 dengan success: false dan alasannya di dalam data.<operation>, jadi periksa body setiap respons operasi tulis. Daftar lengkapnya tersedia di Kode kesalahan.
Langkah berikutnya
- Hubungkan Google dan impor lokasi: alur Google secara massal dari awal hingga akhir, dengan polling dan peristiwa webhook.
- Hubungkan Halaman Facebook: alur yang sama untuk Facebook, termasuk pemutusan koneksi akun.
- Buat Google Business Profile: folder dan pembuatan GMB untuk lokasi yang belum memiliki profil bisnis Google.
- Periksa status profil bisnis dan tautan aktif: pantau perubahan baris Google menjadi
SYNCEDsetelah tautan tersedia. - Indeks referensi: Akun yang terhubung; halaman SDK: Akun yang terhubung di Python, Akun yang terhubung di Node, Profil bisnis di Python, Profil bisnis di Node.