बाह्य एपीआई और प्रोग्राम
इस पेज का उपयोग तब करें जब आप चाहते हैं कि कोई सरल बाहरी प्रोग्राम, स्क्रिप्ट, स्थानीय सर्वर या बैकएंड सेवा आपके वर्तमान Chastify लॉक को नियंत्रित करे।
सबसे आसान तरीका है कि उपयोगकर्ता-व्यापी DEV टोकन बनाया जाए, फिर इसे बियरर टोकन के रूप में /api/apps/v1/* एंडपॉइंट्स पर भेजा जाए।
/api/apps/v1/* केवल आपके अपने सक्रिय लॉक सत्रों के लिए है। यदि आप अन्य Chastify उपयोगकर्ताओं द्वारा उपयोग किया जाने वाला एक सार्वजनिक एक्सटेंशन बना रहे हैं, तो /api/extensions/sessions/:sessionId/* के साथ एक ऐप-स्कोप डेवलपर API कुंजी का उपयोग करें और x-chastify-main-token में iframe mainToken पास करें।
एक DEV टोकन बनाएं
- Chastify खोलें।
Developer APIपर जाएं।User-wide DEV API keysखोजें।- एक कुंजी बनाएं।
- टोकन को तुरंत कॉपी कर लें। यह केवल एक बार ही दिखाया जाएगा।
इसका उपयोग इस प्रकार के अनुरोधों में करें:
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 शामिल है, जिसे प्रोग्राम और नियम इंजनों के लिए आसानी से पढ़ने के लिए डिज़ाइन किया गया है।
सामान्य बूलियन:
frozenunlockabletrustedtaskAssigned:trueजब सक्रिय लॉक खुला होTaskRun
सामान्य संख्याएँ:
timeLockedSecondstimeRemainingSecondsmaxTimeRemainingSecondstaskPoints
सामान्य स्ट्रिंग्स:
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_timeremove_timefreezepilloryunfreezetoggle_freezesettings.patchtask.assigntask.start_timertask.completehygienic_unlock.startpillory.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, याkeyholdericon: वैकल्पिक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–100 | 50 | Shock तीव्रता प्रतिशत के रूप में |
durationSeconds | संख्या | 1–300 | 60 | Shock अवधि सेकंड में |
message | स्ट्रिंग | — | — | पहनने वाले को दिखाया जाने वाला वैकल्पिक संदेश |
उपयोगकर्ता द्वारा निर्धारित अधिकतम वोल्टेज हमेशा एक निश्चित सीमा के रूप में लागू होता है, चाहे आप कुछ भी भेजें। 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–100 | 50 | कंपन तीव्रता प्रतिशत के रूप में |
durationSeconds | संख्या | 1–300 | 30 | कंपन की अवधि सेकंड में |
frequencyPct | संख्या | 1–100 | 50 | कंपन आवृत्ति प्रतिशत के रूप में |
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–100 | 20 | न्यूनतम झटके की तीव्रता प्रतिशत |
maxIntensityPct | संख्या | 1–100 | 80 | अधिकतम झटके की तीव्रता प्रतिशत |
message | स्ट्रिंग | — | — | पहनने वाले को दिखाया जाने वाला वैकल्पिक संदेश |
उपयोगकर्ता द्वारा निर्धारित अधिकतम वोल्टेज हमेशा हार्ड कैप के बराबर होता है। यदि आप 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
}
}
| क्षेत्र | विवरण |
|---|---|
ok | true जब आदेश स्वीकार किया गया |
command | निष्पादित किया गया आदेश |
result.success | true यदि डिवाइस ने कमांड की पुष्टि की |
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"
}
| परिदृश्य | HTTP | error | message |
|---|---|---|---|
| लॉक नहीं मिला या कोई सक्रिय लॉक नहीं है | 404 | lock_not_found | No active lock found |
| लॉक अब सक्रिय नहीं है | 409 | lock_ended | The lock is no longer active |
| अनुपलब्ध पहनने वाला सत्र | 400 | no_wearer | Missing wearer session |
durationSeconds अनुपलब्ध या अमान्य है | 400 | invalid_params | durationSeconds is required for server-initiated shocks |
| असमर्थित डिवाइस पर रैंडम/बर्सर्क मोड | 400 | unsupported_device | Random mode only supported on Lockink AA-A1012 |
| उपयोगकर्ता ने शॉक की सहमति नहीं दी है | 403 | not_authorized | User not eligible for shock commands (consent or device check failed) |
| कोई भी शॉक/वाइब्रेशन-सक्षम डिवाइस पेयर नहीं किया गया है | 404 | no_device | No shock-capable device found for user |
| डिवाइस ऑफ़लाइन है (कोई सॉकेट कनेक्शन नहीं) | 404 | device_offline | No active device socket found for user |
| डिवाइस ने समय पर पुष्टि नहीं की (25 सेकंड) | 504 | device_timeout | Device verification timeout |
| अज्ञात या न संभाली गई विफलता | 400 | command_failed | command_failed |
उपलब्ध होने पर, deviceType को प्रतिक्रिया में शामिल किया जाता है।
विफलता के सामान्य परिदृश्यों की व्याख्या
डिवाइस को मोबाइल ऐप के माध्यम से कनेक्ट करना आवश्यक है
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: हल किया गया लॉक अब सक्रिय नहीं है।
device_timeout (504) को समझना
device_timeout त्रुटि का अर्थ है कि सर्वर ने उपयोगकर्ता के Android ऐप को शॉक कमांड भेजा, लेकिन ऐप ने 25 सेकंड के भीतर ब्लूटूथ डिवाइस पर इसकी डिलीवरी की पुष्टि नहीं की। यह सबसे जटिल त्रुटि है — Android की ओर से क्या होता है, यहाँ बताया गया है:
- सर्वर → ऐप: कमांड Socket.IO के माध्यम से पहनने वाले के फोन पर चल रही नेटिव Shock सेवा तक जाती है।
- ऐप → डिवाइस: ऐप ब्लूटूथ लो एनर्जी (BLE) के माध्यम से डिवाइस से कनेक्ट होता है और शॉक कमांड भेजता है। QIUI डिवाइस के लिए, इसमें पहले डिवाइस निर्माता के API से टोकन प्राप्त करना और फिर BLE कमांड लिखना शामिल है। Lockink डिवाइस के लिए, BLE कमांड सीधे भेजा जाता है।
- ऐप → सर्वर: ऐप सर्वर को एक पुष्टिकरण संदेश वापस भेजता है।
25 सेकंड का टाइमआउट चरण 1 से शुरू होता है। चरण 2 पर टाइमआउट निम्न कारणों से हो सकता है:
- ब्लूटूथ बंद है या डिवाइस पहनने वाले के फोन की रेंज से बाहर है।
- डिवाइस स्लीप मोड में चला जाता है। Lockink डिवाइस केवल 3 मिनट की BLE निष्क्रियता के बाद डीप स्लीप मोड में चले जाते हैं। कीप-अलाइव फ़ीचर इसे रोक सकता है, लेकिन OEM बैटरी ऑप्टिमाइज़ेशन (सैमसंग, श्याओमी, हुआवेई, आदि) बैकग्राउंड ब्लूटूथ कनेक्शन को बंद कर सकते हैं, जिससे कीप-अलाइव अविश्वसनीय हो जाता है।
- बीएलई कनेक्शन विफल हो गया। ऐप बीएलई कनेक्शन को पुनः प्रयास करता है, लेकिन यदि डिवाइस प्रतिक्रिया नहीं देता है, तो समय समाप्त हो जाता है।
- सुरक्षा अवरोध। ऐप में एक अंतर्निहित सुरक्षा प्रणाली है जो उपयोगकर्ता की गतिविधि (जैसे वाहन चलाना, साइकिल चलाना) का पता चलने पर झटके को रोक देती है। यह प्रणाली गतिविधि पहचान और जीपीएस गति पर आधारित है। यदि उपयोगकर्ता गति में है, तो झटका चुपचाप अवरुद्ध हो जाता है और इसे विफल के रूप में सूचित किया जाता है।
- QIUI टोकन प्राप्त करने में विफलता। CellMate Pro 3 और Cagink डिवाइसों के लिए, BLE कमांड भेजने से पहले ऐप को QIUI के क्लाउड API से कमांड टोकन प्राप्त करना आवश्यक है। यदि उपयोगकर्ता के फ़ोन में इंटरनेट कनेक्शन नहीं है, या QIUI का API धीमा/पहुँच से बाहर है, तो इस प्रक्रिया में 25 सेकंड की समय सीमा का अधिकांश समय लग सकता है।
व्यावहारिक पैटर्न
अधिकांश बाहरी कार्यक्रम इसी क्रम का अनुसरण करते हैं:
GET /api/apps/v1/sessionको कॉल करें।lockDataपढ़ें।- तय करें कि क्या होना चाहिए।
/api/apps/v1/actionया किसी अन्य सरल लॉक एंडपॉइंट पर कॉल करें।- आप चाहें तो
/api/apps/v1/logs/customके साथ एक कस्टम लॉग लिख सकते हैं।
उदाहरण के लिए, एक स्क्रिप्ट timeRemainingSeconds की जांच कर सकती है, नियम विफल होने पर समय जोड़ सकती है, और फिर जो हुआ उसे समझाने वाला एक कस्टम लॉग लिख सकती है।