{"id":18743478,"url":"https://github.com/hanwenbo/ttlock-docs","last_synced_at":"2025-11-21T17:30:15.268Z","repository":{"id":139924072,"uuid":"148657662","full_name":"hanwenbo/ttlock-docs","owner":"hanwenbo","description":"ttlock dosc","archived":false,"fork":false,"pushed_at":"2018-09-16T16:34:06.000Z","size":823,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-28T19:43:44.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hanwenbo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-13T15:21:04.000Z","updated_at":"2020-11-17T11:26:59.000Z","dependencies_parsed_at":"2024-08-03T13:31:57.133Z","dependency_job_id":null,"html_url":"https://github.com/hanwenbo/ttlock-docs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanwenbo%2Fttlock-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanwenbo%2Fttlock-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanwenbo%2Fttlock-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanwenbo%2Fttlock-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanwenbo","download_url":"https://codeload.github.com/hanwenbo/ttlock-docs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239627254,"owners_count":19670843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T16:11:36.657Z","updated_at":"2025-11-21T17:30:15.237Z","avatar_url":"https://github.com/hanwenbo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TTLock 中文文档\n\n\nSDK示例：\n\n### 安装PHP SDK\n\n``` bash\ncomposer require hanwenbo/ttlock\n```\n### php sdk 示例\n```php\nuse hanwenbo\\ttlock;\n...\n\n$ttlock = new TTLock($clientId,$clientSecret);\n// oauth2\n$ttlock-\u003eoauth2-\u003etoken($username,$password,$redirect_uri);\n$ttlock-\u003eoauth2-\u003erefreshToken($token,$redirect_uri);\n\n// date is  Current time (in millisecond)\n$ttlock-\u003euser-\u003eregister($username,$password,$date);\n// Reset password\n$ttlock-\u003euser-\u003eresetPassword($username,$password,$date);\n\n$ttlock-\u003euser-\u003elist($startDate,$endDate,$pageNo,$pageSize,$date);\n$ttlock-\u003euser-\u003edelete($username,$date);\n\n// Lock\n$ttlock-\u003elock-\u003einitialize($lockData,$date,$lockAlias);\n$ttlock-\u003elock-\u003elist($pageNo,$pageSize,$date);\n$ttlock-\u003elock-\u003elistKey($lockId,$pageSize,$date);\n$ttlock-\u003elock-\u003edeleteAllKey($lockId,$date);\n$ttlock-\u003elock-\u003elistKeyboardPwd($lockId,$pageNo,$pageSize,$date);\n$ttlock-\u003elock-\u003echangeAdminKeyboardPwd($lockId,$password,$date);\n$ttlock-\u003elock-\u003echangeDeletePwd($lockId,$password,$date);\n$ttlock-\u003elock-\u003erename($lockId,$lockAlias,$date);\n$ttlock-\u003elock-\u003eresetKey($lockId,$date);\n$ttlock-\u003elock-\u003eresetKeyboardPwd($lockId,$pwdInfo,$timestamp,$date);\n$ttlock-\u003elock-\u003egetKeyboardPwdVersion($lockId,$date);\n$ttlock-\u003elock-\u003eupdateElectricQuantity($lockId,$electricQuantity,$date);\n$ttlock-\u003elock-\u003etransfer($receiverUsername,$lockIdList,$date);\n```\n# 开发指南\n## APP集成开发指南\n### 1.1 概述\n- TTLock是一款拥有完全自主知识产权的软硬件结合的门锁产品，通过手机 APP替代传统的钥匙实现开门。 \n- 针对合作伙伴系统定制的需求，TTLock提供了开放平台 Open API 和 APP SDK。合作伙 伴可方便地在自己的应用系统和 APP中集成TTLock的各项功能。 \n- 本文档对 APP的集成开发进行说明。 \n\n### 1.2 应用架构\n系统应用架构如下图所示。 \n![img](http://open.ttlock.com.cn/commons/images/open/architecture.gif)\n\n- APP借助SDK通过蓝牙与锁通信，实现锁的初始化、开锁、读取锁操作记录等；\n- 建议APP不直接调用开放平台的Open API，由APP后台应用系统与Open API交互，并暴露相应的接口给APP。\n- 应用系统通过通通锁开放平台提供的 Open API 与通通锁平台实现用户绑定和授权，并进行门锁、电子钥匙以及键盘密码的管理。 \n### 1.3 开发步骤\n（1）注册开发者账号并创建应用，得到client_id和client_secret。\n\n（2）APP里导入SDK开发包，调用其中的方法，并实现相应的回调方法。注：SDK请到开放平台qq群里下载。 \n\n（3）APP后台服务端应用系统通过Open API注册用户。\n \n（4）APP后台服务端应用系统通过Open API获取访问令牌。\n \n（5）携带访问令牌，就可以调用Open API的锁、钥匙、密码相关接口，具体的请参考后续应用流程。\n\n### 1.4 应用流程\n- 系统涉及的主要流程包括：初始化门锁，电子钥匙开锁\n#### 1.4.1 绑定门锁\n![img](http://open.ttlock.com.cn/commons/images/open/binddingAdmin.jpg)\n- 管理员使用APP实现对门锁的初始化设置，并通过应用系统将门锁信息传给开放平台。\n- 应用系统可以对房间和门锁进行关联。\n#### 1.4.2 电子钥匙发放及开锁\n![img](http://open.ttlock.com.cn/commons/images/open/keyUnlock.jpg)\n- 应用系统向用户发送带有时效的电子钥匙。\n- 用户使用APP从服务端同步获取钥匙，并进行开门。\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanwenbo%2Fttlock-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanwenbo%2Fttlock-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanwenbo%2Fttlock-docs/lists"}