Bir üyeyi kaydetme
Üye kayıtları oluşturur veya günceller. API, oluşturma ya da güncelleme yapılacağına member_id değerine göre karar verir.
Parametreler
-
members
arrayzorunluKaydedilecek Member nesnelerinin dizisi. En iyi performans için önerilen üst sınır: istek başına 1000 öğe. API, öğeleri işlenmek üzere otomatik olarak gruplar. Her öğe
facility_id(linking_identifierkullanılmıyorsa zorunlu) veyalinking_identifier(facility_idkullanılmıyorsa zorunlu) içermelidir.Bir üye
access_time_windowsiçerdiğindeaccess_time_windows_revisiondeğerini de içermelidir. Dizi bir yama değil, eksiksiz bir kaynak anlık görüntüsüdür. Mevcut anlık görüntüyü korumak için göndermeyin veya kaynağa ait tüm pencereleri iptal etmek için daha yeni bir revizyonla[]gönderin. Bu alanı etkinleştirmeden önce Access Time Windows kılavuzunu okuyun.
Döndürülen değer
Eşitleme işlemini onaylayan basit bir mesaj döndürür.
Bir pencere anlık görüntüsü idempotent yeniden oynatma veya eski olduğu için atlama olarak bildirilse bile üye profili alanları normal upsert işlemleri olarak kalır. Aynı revizyona sahip, farklı yük içeren çakışan bir anlık görüntü değiştirilmeden yeniden denenemez; kaynak durumuyla mutabakat sağlayın ve daha yeni bir revizyon gönderin.
İstek
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
}
]
}
]
}'
Yanıt
Eşitleme işlemine ilişkin meta verilerle birlikte bir başarı mesajı döndürür.
{
"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"
}
]
}
}
Meta veri alanları:
- success - Başarıyla işlenen üye sayısı
- skipped - Atlanan üye sayısı (varsa)
- skipped_items - Atlanan üyelerin nedenleriyle birlikte dizisi (varsa)
- dry-run - dryrun anahtar türü kullanılıyorsa Boolean bayrak (varsa)