Simpan ahli
Mencipta atau mengemas kini rekod ahli. API menentukan sama ada untuk mencipta atau mengemas kini berdasarkan member_id.
Parameter
-
members
arraywajibTatasusunan objek Ahli untuk disimpan. Maksimum yang disyorkan: 1000 item bagi setiap permintaan untuk prestasi optimum. API mengelompokkan item secara automatik untuk pemprosesan. Setiap item mesti menyertakan sama ada
facility_id(diperlukan jika tidak menggunakanlinking_identifier) ataulinking_identifier(diperlukan jika tidak menggunakanfacility_id).Apabila ahli menyertakan
access_time_windows, ia juga mesti menyertakanaccess_time_windows_revision. Tatasusunan itu ialah petikan sumber yang lengkap, bukan tampalan. Tinggalkannya untuk mengekalkan petikan sedia ada, atau hantar[]dengan semakan yang lebih baharu untuk membatalkan semua tetingkap milik sumber. Baca panduan Access Time Windows sebelum mendayakan medan ini.
Nilai pulangan
Mengembalikan mesej ringkas yang mengesahkan operasi penyegerakan.
Medan profil ahli kekal sebagai upsert biasa walaupun petikan tetingkap dilaporkan sebagai main semula idempoten atau langkau data lapuk. Petikan bercanggah dengan semakan sama/muatan berbeza tidak boleh dicuba semula tanpa perubahan; selaraskan keadaan sumber dan hantar semakan yang lebih baharu.
Permintaan
curl -X POST https://partner-api.performancehub.co/partner/v1/members \
-u sk_live_YOUR_PARTNER_SECRET_KEY: \
-H "Content-Type: application/json" \
-d '{
"members": [
{
"member_id": "member_11111",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
// "linking_identifier": "branch_downtown", // If using linking identifier
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@example.com",
"mobile_phone": "+61 412 345 678",
"date_of_birth": "1985-06-15",
"gender": "male",
"type": "member",
"tags": ["vip", "personal-training"],
"profile_picture": "/9j/4AAQSkZJRgABAQAAAQ...",
"membership_status": "current",
"created": "2024-01-15T10:30:00Z",
"updated": "2024-01-20T14:45:00Z",
"access_time_windows_revision": 1842,
"access_time_windows": [
{
"external_id": "access-4b1782",
"kind": "absolute",
"from": 1792053000,
"to": 1792058400,
"timezone": "Australia/Perth",
"scope_key": "after_hours_entry",
"label": "Temporary site access"
}
],
"address": {
"address_line_1": "456 Bourke Street",
"address_line_2": "Apt 12",
"city": "Melbourne",
"state": "VIC",
"postal_code": "3000",
"country": "AU",
"country_name": "Australia"
},
"membership_plans": [
{
"membership_plan_id": "plan_99999",
"name": "Unlimited Monthly",
"start_date": "2024-01-01T00:00:00Z",
"status": "current",
"is_current": true,
"end_date": null
}
]
}
]
}'
Respons
Mengembalikan mesej kejayaan dengan metadata tentang operasi penyegerakan.
{
"message": "Member sync successful.",
"metadata": {
"success": 245,
"skipped": 5,
"skipped_items": [
{
"member_id": "member_123",
"facility_id": null,
"reason": "Facility integration is disabled in facility-partner-config"
}
]
}
}
Medan metadata:
- success - Bilangan ahli yang berjaya diproses
- skipped - Bilangan ahli yang dilangkau (jika ada)
- skipped_items - Tatasusunan ahli yang dilangkau beserta sebab (jika ada)
- dry-run - Bendera boolean jika menggunakan jenis kunci dryrun (jika berkenaan)