मुख्य कंटेंट तक स्किप करें

बाह्य एपीआई और प्रोग्राम

इस पेज का उपयोग तब करें जब आप चाहते हैं कि कोई सरल बाहरी प्रोग्राम, स्क्रिप्ट, स्थानीय सर्वर या बैकएंड सेवा आपके वर्तमान Chastify लॉक को नियंत्रित करे।

सबसे आसान तरीका है कि उपयोगकर्ता-व्यापी DEV टोकन बनाया जाए, फिर इसे बियरर टोकन के रूप में /api/apps/v1/* एंडपॉइंट्स पर भेजा जाए।

/api/apps/v1/* केवल आपके अपने सक्रिय लॉक सत्रों के लिए है। यदि आप अन्य Chastify उपयोगकर्ताओं द्वारा उपयोग किया जाने वाला एक सार्वजनिक एक्सटेंशन बना रहे हैं, तो /api/extensions/sessions/:sessionId/* के साथ एक ऐप-स्कोप डेवलपर API कुंजी का उपयोग करें और x-chastify-main-token में iframe mainToken पास करें।

एक DEV टोकन बनाएं

  1. Chastify खोलें।
  2. Developer API पर जाएं।
  3. User-wide DEV API keys खोजें।
  4. एक कुंजी बनाएं।
  5. टोकन को तुरंत कॉपी कर लें। यह केवल एक बार ही दिखाया जाएगा।

इसका उपयोग इस प्रकार के अनुरोधों में करें:

curl https://chastify.net/api/apps/v1/session \
-H "Authorization: Bearer YOUR_DEV_TOKEN"

DEV टोकन:

  • एक्सटेंशन बनाने की आवश्यकता नहीं है
  • ये अपने आप समाप्त नहीं होते
  • यह आपके वर्तमान सक्रिय लॉक और भविष्य के सक्रिय लॉक सत्रों के लिए काम करता है।
  • लॉक को सक्रिय रखने के लिए अपनी भूमिका का उपयोग करें, चाहे आप लॉक पहनने वाले हों या चाबी रखने वाले।
  • इसे डेवलपर एपीआई पेज से रद्द किया जा सकता है।

DEV टोकन को पासवर्ड की तरह समझें। इस टोकन को रखने वाला कोई भी व्यक्ति आपके नाम से डेवलपर API को कॉल कर सकता है।

पहली कॉल: वर्तमान लॉक की जाँच करें

के साथ शुरू:

GET https://chastify.net/api/apps/v1/session

उदाहरण:

curl https://chastify.net/api/apps/v1/session \
-H "Authorization: Bearer YOUR_DEV_TOKEN"

यह आपको आपका वर्तमान लॉक संदर्भ, भूमिका, स्कोप, शेष समय और lockData लौटाता है।

लॉक डेटा हेल्पर

GET /api/apps/v1/session में lockData शामिल है, जिसे प्रोग्राम और नियम इंजनों के लिए आसानी से पढ़ने के लिए डिज़ाइन किया गया है।

सामान्य बूलियन:

  • frozen
  • unlockable
  • trusted
  • taskAssigned: true जब सक्रिय लॉक खुला हो TaskRun

सामान्य संख्याएँ:

  • timeLockedSeconds
  • timeRemainingSeconds
  • maxTimeRemainingSeconds
  • taskPoints

सामान्य स्ट्रिंग्स:

  • lockTitle
  • पहनने वाले की प्रोफ़ाइल फ़ील्ड
  • कुंजीधारक प्रोफ़ाइल फ़ील्ड

गोपनीयता संबंधी सूचना:

  • wearerLastSeenTimestamp और keyholderLastSeenTimestamp, null के बराबर होते हैं जब उस उपयोगकर्ता ने अपनी ऑनलाइन स्थिति को निष्क्रिय कर दिया हो।

मुख्य लॉक एक्शन एंडपॉइंट्स

ये वे एंडपॉइंट हैं जिनका उपयोग अधिकांश बाहरी प्रोग्राम लॉक को संशोधित करने के लिए करते हैं।

POST https://chastify.net/api/apps/v1/action
POST https://chastify.net/api/apps/v1/lock/apply-time
POST https://chastify.net/api/apps/v1/lock/freeze
POST https://chastify.net/api/apps/v1/lock/unfreeze
POST https://chastify.net/api/apps/v1/logs/custom

सभी अनुरोध निम्न का उपयोग करते हैं:

Authorization: Bearer YOUR_DEV_TOKEN
Content-Type: application/json

समय जोड़ें या हटाएं

जब आप केवल शेष समय को बदलना चाहते हैं, तो सरल समय एंडपॉइंट का उपयोग करें।

10 मिनट और जोड़ें:

curl -X POST https://chastify.net/api/apps/v1/lock/apply-time \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"deltaSeconds":600}'

5 मिनट निकालें:

curl -X POST https://chastify.net/api/apps/v1/lock/apply-time \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"deltaSeconds":-300}'

जमाना और पिघलाना

30 मिनट के लिए फ्रीज करें:

curl -X POST https://chastify.net/api/apps/v1/lock/freeze \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"durationSeconds":1800}'

अनफ़्रीज़ करें:

curl -X POST https://chastify.net/api/apps/v1/lock/unfreeze \
-H "Authorization: Bearer YOUR_DEV_TOKEN"

सामान्य कार्रवाई समाप्ति बिंदु

उपयोग:

POST https://chastify.net/api/apps/v1/action

शरीर के आकार:

{
"name": "add_time",
"params": 600
}

उदाहरण:

curl -X POST https://chastify.net/api/apps/v1/action \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"add_time","params":600}'

समर्थित क्रिया नाम

name निम्नलिखित का समर्थन करता है:

  • add_time
  • remove_time
  • freeze
  • pillory
  • unfreeze
  • toggle_freeze
  • settings.patch
  • task.assign
  • task.start_timer
  • task.complete
  • hygienic_unlock.start
  • pillory.end

क्रिया संबंधी प्रतिबंध:

  • टास्क क्रियाओं के लिए लॉक पर टास्क मॉड्यूल का सक्षम होना आवश्यक है।
  • hygienic_unlock.start के लिए हाइजीनिक ओपनिंग को सक्षम करना और कोई सक्रिय हाइजीन सत्र न होना आवश्यक है।
  • डिवाइस कमांड के लिए समर्थित कनेक्टेड डिवाइस और अनुमतियों की आवश्यकता होती है।

उपयोगी कार्रवाई के उदाहरण

15 मिनट निकालें:

{
"name": "remove_time",
"params": 900
}

5 मिनट के लिए फ्रीज करें:

{
"name": "freeze",
"params": {
"durationSeconds": 300
}
}

फ़्रीज़ टॉगल करें:

{
"name": "toggle_freeze",
"params": {
"durationSeconds": 300
}
}

कार्य सौंपें:

{
"name": "task.assign",
"params": {
"actor": "extension",
"taskText": "Drink water",
"points": 5,
"verificationRequired": false,
"durationSeconds": 900
}
}

यह सक्रिय लॉक के लिए TaskRun बनाता है। यदि कोई अन्य कार्य पहले से ही चल रहा है, तो वर्तमान कार्यान्वयन पुराने चल रहे कार्य को रद्द कर देता है और एक नया कार्य शुरू करता है।

सक्रिय कार्य टाइमर शुरू करें:

{
"name": "task.start_timer",
"params": {}
}

सक्रिय कार्य पूरा करें:

{
"name": "task.complete",
"params": {
"successful": true
}
}

इससे सक्रिय लॉक के लिए नवीनतम ओपन TaskRun पूरा हो जाता है।

स्वच्छतापूर्वक अनलॉक करने की प्रक्रिया शुरू करें:

{
"name": "hygienic_unlock.start",
"params": {
"durationSeconds": 900
}
}

सक्रिय अपंगता समाप्त करें:

{
"name": "pillory.end",
"params": {}
}

कस्टम लॉक लॉग

इसका उपयोग तब करें जब आपके प्रोग्राम ने कुछ किया हो और आप उसे लॉक हिस्ट्री में दिखाना चाहते हों।

POST https://chastify.net/api/apps/v1/logs/custom

उदाहरण:

curl -X POST https://chastify.net/api/apps/v1/logs/custom \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Program check completed","description":"The external rule script ran successfully.","role":"extension"}'

शरीर के क्षेत्र:

  • title: आवश्यक
  • description: वैकल्पिक
  • role: extension, wearer, या keyholder
  • icon: वैकल्पिक
  • color: वैकल्पिक हेक्स रंग, उदाहरण के लिए #ffcc00

डिवाइस कमांड

डिवाइस कमांड की मदद से आप पहनने वाले व्यक्ति के कनेक्टेड डिवाइस पर झटके और कंपन उत्पन्न कर सकते हैं।

POST https://chastify.net/api/apps/v1/device-command

यह आपके DEV टोकन के साथ काम करता है — सेशन आईडी की आवश्यकता नहीं है। सर्वर आपके टोकन से लॉक और उपयोगकर्ता की जानकारी स्वतः ही प्राप्त कर लेता है।

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"shock.start","params":{"intensityPct":75,"durationSeconds":10}}'

अनुरोध निकाय

{
"command": "<command>",
"params": { ... }
}
  • command (स्ट्रिंग, आवश्यक) — निष्पादित करने के लिए डिवाइस कमांड।
  • params (ऑब्जेक्ट, वैकल्पिक) — कमांड-विशिष्ट पैरामीटर (नीचे देखें)।

समर्थित कमांड और उनके पैरामीटर

shock.start

पहनने वाले के उपकरण पर झटका शुरू करता है।

पैरामीटरप्रकारसीमाडिफ़ॉल्टविवरण
intensityPctसंख्या1–10050Shock तीव्रता प्रतिशत के रूप में
durationSecondsसंख्या1–30060Shock अवधि सेकंड में
messageस्ट्रिंगपहनने वाले को दिखाया जाने वाला वैकल्पिक संदेश
note

उपयोगकर्ता द्वारा निर्धारित अधिकतम वोल्टेज हमेशा एक निश्चित सीमा के रूप में लागू होता है, चाहे आप कुछ भी भेजें। Lockink उपकरणों के लिए, यह प्रति-उपकरण वोल्टेज सीमा है। QIUI उपकरणों के लिए, यह shockVolt सेटिंग (1-4 स्केल) है। यदि आप intensityPct: 80 भेजते हैं लेकिन उपयोगकर्ता की सीमा 50% है, तो उपकरण केवल 50% ही डिलीवर करेगा।

उदाहरण:

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"shock.start","params":{"intensityPct":75,"durationSeconds":10,"message":"Extension shock"}}'

shock.stop

पहनने वाले के उपकरण पर चल रहे सभी झटकों को रोक देता है। किसी पैरामीटर की आवश्यकता नहीं है।

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"shock.stop"}'

vibration.start

यह उपयोगकर्ता के उपकरण पर कंपन शुरू कर देता है।

पैरामीटरप्रकारसीमाडिफ़ॉल्टविवरण
intensityPctसंख्या1–10050कंपन तीव्रता प्रतिशत के रूप में
durationSecondsसंख्या1–30030कंपन की अवधि सेकंड में
frequencyPctसंख्या1–10050कंपन आवृत्ति प्रतिशत के रूप में
messageस्ट्रिंगपहनने वाले को दिखाया जाने वाला वैकल्पिक संदेश

उदाहरण:

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"vibration.start","params":{"intensityPct":60,"durationSeconds":15,"frequencyPct":40}}'

vibration.stop

सभी सक्रिय कंपन बंद कर देता है। किसी पैरामीटर की आवश्यकता नहीं है।

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"vibration.stop"}'

all.stop

यह डिवाइस की सभी गतिविधियों (झटके, कंपन आदि) को रोक देता है। किसी पैरामीटर की आवश्यकता नहीं है।

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"all.stop"}'

shock.random.set

उपयोगकर्ता के डिवाइस पर रैंडम शॉक मोड को सक्षम या अक्षम करता है।

पैरामीटरप्रकारसीमाडिफ़ॉल्टविवरण
enabledबूलियनरैंडम मोड को सक्षम (true) या अक्षम (false) करें
minIntensityPctसंख्या1–10020न्यूनतम झटके की तीव्रता प्रतिशत
maxIntensityPctसंख्या1–10080अधिकतम झटके की तीव्रता प्रतिशत
messageस्ट्रिंगपहनने वाले को दिखाया जाने वाला वैकल्पिक संदेश
note

उपयोगकर्ता द्वारा निर्धारित अधिकतम वोल्टेज हमेशा हार्ड कैप के बराबर होता है। यदि आप maxIntensityPct: 80 सेट करते हैं लेकिन उपयोगकर्ता की सीमा 50 है, तो वास्तविक अधिकतम वोल्टेज 50% होगा।

उदाहरण:

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"shock.random.set","params":{"enabled":true,"minIntensityPct":25,"maxIntensityPct":75}}'

shock.berserk.set

उपयोगकर्ता के डिवाइस पर बर्सेर्क शॉक मोड को सक्षम या अक्षम करता है।

पैरामीटरप्रकारसीमाडिफ़ॉल्टविवरण
enabledबूलियनबर्सेर्क मोड को सक्षम (true) या अक्षम (false) करें
messageस्ट्रिंगपहनने वाले को दिखाया जाने वाला वैकल्पिक संदेश

उदाहरण:

curl -X POST https://chastify.net/api/apps/v1/device-command \
-H "Authorization: Bearer YOUR_DEV_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"shock.berserk.set","params":{"enabled":true}}'

डिवाइस के कमांड सक्रिय लॉक, डिवाइस की उपलब्धता और कमांड पॉलिसी पर निर्भर करते हैं।

डिवाइस चयन

आपको डिवाइस आईडी या डिवाइस प्रकार निर्दिष्ट करने की आवश्यकता नहीं है। प्रत्येक उपयोगकर्ता के पास एक समय में केवल एक ही सक्रिय डिवाइस हो सकता है - सर्वर उसे स्वचालित रूप से लक्षित कर लेता है।

प्रतिक्रिया में deviceType लौटाया जाता है, जिससे आपको पता चलता है कि किस डिवाइस को कमांड प्राप्त हुई।

जवाब

सफलता (200)

{
"ok": true,
"command": "shock.start",
"result": {
"success": true,
"message": "Shock command sent (10s)",
"deviceType": "lockink-aa-a1012"
},
"active": {
"shock": true,
"vibration": false
}
}
क्षेत्रविवरण
oktrue जब आदेश स्वीकार किया गया
commandनिष्पादित किया गया आदेश
result.successtrue यदि डिवाइस ने कमांड की पुष्टि की
result.messageमानव-पठनीय स्थिति संदेश
result.deviceTypeपहनने वाले के डिवाइस का प्रकार (उदाहरण के लिए lockink-aa-a1012, cellmate-pro-3)
active.shockक्या पहनने वाले के डिवाइस पर वर्तमान में कोई झटका सक्रिय है?
active.vibrationक्या पहनने वाले के डिवाइस पर वर्तमान में कंपन सक्रिय है?

ध्यान दें: shock.start और vibration.start कमांड प्राप्त होने की पुष्टि के लिए डिवाइस को 25 सेकंड तक प्रतीक्षा करनी पड़ती है। स्टॉप कमांड (shock.stop, vibration.stop, all.stop) तुरंत परिणाम देती हैं।

असफलता

सभी विफलताएं JSON बॉडी के साथ HTTP 4xx/5xx लौटाती हैं:

{
"success": false,
"error": "no_device",
"message": "No shock-capable device found for user"
}
परिदृश्यHTTPerrormessage
लॉक नहीं मिला या कोई सक्रिय लॉक नहीं है404lock_not_foundNo active lock found
लॉक अब सक्रिय नहीं है409lock_endedThe lock is no longer active
अनुपलब्ध पहनने वाला सत्र400no_wearerMissing wearer session
durationSeconds अनुपलब्ध या अमान्य है400invalid_paramsdurationSeconds is required for server-initiated shocks
असमर्थित डिवाइस पर रैंडम/बर्सर्क मोड400unsupported_deviceRandom mode only supported on Lockink AA-A1012
उपयोगकर्ता ने शॉक की सहमति नहीं दी है403not_authorizedUser not eligible for shock commands (consent or device check failed)
कोई भी शॉक/वाइब्रेशन-सक्षम डिवाइस पेयर नहीं किया गया है404no_deviceNo shock-capable device found for user
डिवाइस ऑफ़लाइन है (कोई सॉकेट कनेक्शन नहीं)404device_offlineNo active device socket found for user
डिवाइस ने समय पर पुष्टि नहीं की (25 सेकंड)504device_timeoutDevice verification timeout
अज्ञात या न संभाली गई विफलता400command_failedcommand_failed

उपलब्ध होने पर, deviceType को प्रतिक्रिया में शामिल किया जाता है।

विफलता के सामान्य परिदृश्यों की व्याख्या

caution

डिवाइस को मोबाइल ऐप के माध्यम से कनेक्ट करना आवश्यक है

Shock और कंपन के लिए उपयोगकर्ता के पास समर्थित ब्लूटूथ डिवाइस का युग्मन होना और फ़ोन पर Chastify मोबाइल ऐप का सक्रिय रूप से चलना आवश्यक है। ऐप वास्तविक समय में सॉकेट कनेक्शन बनाए रखता है जो डिवाइस को कमांड भेजता है। यदि ऐप बंद है या फ़ोन में इंटरनेट नहीं है, तो कमांड काम नहीं करेंगे।

no_device — उपयोगकर्ता ने Chastify ऐप में शॉक-प्रतिरोधी डिवाइस (जैसे CellMate Pro 3, Cagink Metal, Lockink AA-A1012) को पेयर नहीं किया है। API द्वारा डिवाइस को लक्षित करने से पहले, डिवाइस का पेयर होना, सक्रिय होना और पूरी तरह से कॉन्फ़िगर होना आवश्यक है।

device_offline — उपयोगकर्ता का डिवाइस पेयर हो चुका है, लेकिन Android ऐप पर नेटिव Shock सर्विस चालू नहीं है या चल नहीं रही है। यह सबसे आम समस्या है — कमांड को विश्वसनीय रूप से डिलीवर करने के लिए उपयोगकर्ता को Android ऐप की सेटिंग्स में नेटिव Shock सर्विस को चालू करना होगा।

device_timeout — यह कमांड मोबाइल ऐप को भेजा गया था, लेकिन ऐप ने 25 सेकंड के भीतर ब्लूटूथ डिवाइस द्वारा इसके प्राप्त होने की पुष्टि नहीं की। इसका आमतौर पर मतलब होता है कि उपयोगकर्ता का ब्लूटूथ बंद है, डिवाइस रेंज से बाहर है, या डिवाइस बंद है। Lockink वाले डिवाइस केवल 3 मिनट की निष्क्रियता के बाद स्लीप मोड में चले जाते हैं, जब तक कि कीप-अलाइव फ़ंक्शन चालू न हो — और तब भी, फ़ोन पर OEM बैटरी ऑप्टिमाइज़ेशन बैकग्राउंड ब्लूटूथ को सीमित कर सकते हैं और कीप-अलाइव को ठीक से काम करने से रोक सकते हैं।

not_authorized — उपयोगकर्ता ने अपने डिवाइस की सेटिंग में स्पष्ट रूप से शॉक की अनुमति नहीं दी है। यह एक सुरक्षा आवश्यकता है — भले ही डिवाइस पहले से ही युग्मित हो, उपयोगकर्ता को रिमोट शॉक/वाइब्रेशन कमांड की अनुमति देनी होगी।

unsupported_device — रैंडम और बर्सेर्क मोड केवल Lockink AA-A1012 (Beesting) पर उपलब्ध हैं। CellMate Pro 3 या Cagink Metal जैसे अन्य डिवाइस इन मोड को सपोर्ट नहीं करते हैं।

आम त्रुटियों

  • 401 missing_token: Authorization: Bearer YOUR_DEV_TOKEN भेजें।
  • 401 invalid_token: टोकन गलत है या गलत तरीके से कॉपी किया गया है।
  • 401 revoked_token: DEV कुंजी रद्द कर दी गई थी।
  • 403 insufficient_scope: कुंजी में आवश्यक स्कोप नहीं है।
  • 409 no_active_lock_session: उपयोगकर्ता के पास वर्तमान में कोई सक्रिय लॉक नहीं है।
  • 409 lock_ended: हल किया गया लॉक अब सक्रिय नहीं है।
info

device_timeout (504) को समझना

device_timeout त्रुटि का अर्थ है कि सर्वर ने उपयोगकर्ता के Android ऐप को शॉक कमांड भेजा, लेकिन ऐप ने 25 सेकंड के भीतर ब्लूटूथ डिवाइस पर इसकी डिलीवरी की पुष्टि नहीं की। यह सबसे जटिल त्रुटि है — Android की ओर से क्या होता है, यहाँ बताया गया है:

  1. सर्वर → ऐप: कमांड Socket.IO के माध्यम से पहनने वाले के फोन पर चल रही नेटिव Shock सेवा तक जाती है।
  2. ऐप → डिवाइस: ऐप ब्लूटूथ लो एनर्जी (BLE) के माध्यम से डिवाइस से कनेक्ट होता है और शॉक कमांड भेजता है। QIUI डिवाइस के लिए, इसमें पहले डिवाइस निर्माता के API से टोकन प्राप्त करना और फिर BLE कमांड लिखना शामिल है। Lockink डिवाइस के लिए, BLE कमांड सीधे भेजा जाता है।
  3. ऐप → सर्वर: ऐप सर्वर को एक पुष्टिकरण संदेश वापस भेजता है।

25 सेकंड का टाइमआउट चरण 1 से शुरू होता है। चरण 2 पर टाइमआउट निम्न कारणों से हो सकता है:

  • ब्लूटूथ बंद है या डिवाइस पहनने वाले के फोन की रेंज से बाहर है।
  • डिवाइस स्लीप मोड में चला जाता है। Lockink डिवाइस केवल 3 मिनट की BLE निष्क्रियता के बाद डीप स्लीप मोड में चले जाते हैं। कीप-अलाइव फ़ीचर इसे रोक सकता है, लेकिन OEM बैटरी ऑप्टिमाइज़ेशन (सैमसंग, श्याओमी, हुआवेई, आदि) बैकग्राउंड ब्लूटूथ कनेक्शन को बंद कर सकते हैं, जिससे कीप-अलाइव अविश्वसनीय हो जाता है।
  • बीएलई कनेक्शन विफल हो गया। ऐप बीएलई कनेक्शन को पुनः प्रयास करता है, लेकिन यदि डिवाइस प्रतिक्रिया नहीं देता है, तो समय समाप्त हो जाता है।
  • सुरक्षा अवरोध। ऐप में एक अंतर्निहित सुरक्षा प्रणाली है जो उपयोगकर्ता की गतिविधि (जैसे वाहन चलाना, साइकिल चलाना) का पता चलने पर झटके को रोक देती है। यह प्रणाली गतिविधि पहचान और जीपीएस गति पर आधारित है। यदि उपयोगकर्ता गति में है, तो झटका चुपचाप अवरुद्ध हो जाता है और इसे विफल के रूप में सूचित किया जाता है।
  • QIUI टोकन प्राप्त करने में विफलता। CellMate Pro 3 और Cagink डिवाइसों के लिए, BLE कमांड भेजने से पहले ऐप को QIUI के क्लाउड API से कमांड टोकन प्राप्त करना आवश्यक है। यदि उपयोगकर्ता के फ़ोन में इंटरनेट कनेक्शन नहीं है, या QIUI का API धीमा/पहुँच से बाहर है, तो इस प्रक्रिया में 25 सेकंड की समय सीमा का अधिकांश समय लग सकता है।

व्यावहारिक पैटर्न

अधिकांश बाहरी कार्यक्रम इसी क्रम का अनुसरण करते हैं:

  1. GET /api/apps/v1/session को कॉल करें।
  2. lockData पढ़ें।
  3. तय करें कि क्या होना चाहिए।
  4. /api/apps/v1/action या किसी अन्य सरल लॉक एंडपॉइंट पर कॉल करें।
  5. आप चाहें तो /api/apps/v1/logs/custom के साथ एक कस्टम लॉग लिख सकते हैं।

उदाहरण के लिए, एक स्क्रिप्ट timeRemainingSeconds की जांच कर सकती है, नियम विफल होने पर समय जोड़ सकती है, और फिर जो हुआ उसे समझाने वाला एक कस्टम लॉग लिख सकती है।