4.1 KiB
端到端链路(recipes)
dev 的端到端任务都是「定ä½�应用,改容器æŸ�节点,按审批需è¦�走版本生效,最å�Žå›žè¯»éªŒè¯�ã€�。æ¯�æ¥å…ˆ --dry-run 确认å†� --yes,å�‚数用对应命令的 --help 查询,¼Œç»†èŠ‚è¿›å¯¹åº” reference。
建一个钉钉里打开的网页应用
dev app create --name <�>建应用,拿 unifiedAppIddev app webapp config�移动端/PC 首页(� webapp.md)dev app version create建版本dev app version check-approval预检是�需审批dev app version publish�布(需审批时让用户选审批人)- 回读
dev app version status到RELEASE�算生效
��从申请到生效
dev app permission list选scopeValue(选择顺�� permission.md)dev app permission add --scope-values <值>申请- 若是
requiredApproval的��,走版本:version create,�check-approval,�publish --approver-user-id <用户选的>,最�version status - �审��直接开通,�必�版本
å�šä¸€ä¸ªç”疑机器人并接到本地调试
dev app create --name <å��>创建应用,拿明确unifiedAppIddev app robot config --unified-app-id <unifiedAppId>é…�置机器人能力;需è¦�å�¯ç”¨æ—¶å†�robot enable- 线上使用é—环:
version create→check-approval→publish→version statusï¼›SELECT_APPROVERæ—¶å¿…é¡»ç‰ç”¨æˆ·é€‰æ‹©å®¡æ‰¹äººï¼Œä¸�默认å�–第一个 - 本地调试/值守:
dev connect --unified-app-id <unifiedAppId>把机器人接到本地 agent(è§� connect.md);注æ„�订阅事件å‰�è¦�先建è�”长连(è§� event.md) - è‹¥èµ°æ— ç»‘å®šçš„
robot submit/result,å�ªæœ‰ç»“果返回明确unifiedAppIdæ‰�能继ç»ç‰ˆæœ¬å�‘布 - 完æˆ�æ€�与缺
unifiedAppIdã€�SELECT_APPROVERç‰é—¨ç¦�判定è§� devapp.mdã€Œæ ¸å¿ƒè§„åˆ™ã€�:建è�”æˆ�功 + 版本进入RELEASE/AUDIT/UNDER_REVIEWæ‰�算完æˆ�
é‡�å�¯å®ˆæŠ¤è¿›ç¨‹è¿žæŽ¥å™¨ï¼ˆä¸�å˜å¯†é’¥ï¼‰
守护进程被 stop / kill / 崩溃å�Žï¼Œé€šè¿‡æŒ�久化的 unifiedAppId é‡�新拉å�–密钥并é‡�å�¯ï¼Œæ— 需本地ä¿�å˜ AppSecret。
dev connect --daemon --unified-app-id <id> --channel <channel>首次�动(unifiedAppId和channel会写入~/.dws/connect/<key>/daemon.pid)dev connect restart --unified-app-id <id>��:自动 stop 旧进程 → 从 dev 平�拉� AppKey/Secret → �新建�dev connect status --unified-app-id <id>确认��healthy- 若 daemon.pid 未�久化
unifiedAppId(如用--robot-client-id直接�动的),restart 会�示改用--unified-app-id�动
注æ„�:密钥ä¸�è�½ç›˜ï¼Œæ¯�次 restart 动æ€�从开å�‘者平å�°èŽ·å�–ï¼›daemon.pid å�ªå˜ unifiedAppIdã€�channelã€�clientId(公开值)。
ä¸Šä¼ å›¾ç‰‡æ‹¿ mediaIdï¼ˆåº”ç”¨å›¾æ ‡ / æœºå™¨äººå›¾æ ‡ï¼‰
åº”ç”¨å›¾æ ‡ã€�æœºå™¨äººå›¾æ ‡éƒ½é� mediaId 指定,但 dev 命令集ä¸�å�«ä¸Šä¼ ——mediaId è¦�调钉钉 OpenAPI 拿到:
-
æ‹¿å‡è¯�:
dev app credentials get --unified-app-id <id>å�–appKey/appSecret(secret 按æ•�感处ç�†ï¼Œä¸�写进回ç”) -
� access_token:
GET https://oapi.dingtalk.com/gettoken?appkey=<appKey>&appsecret=<appSecret>,å�–返回的access_token(有效期约 7200 ç§’ã€�gettoken 有频控,缓å˜å¤�用别æ¯�æ¬¡ä¸Šä¼ éƒ½æ�¢ï¼‰ -
ä¸Šä¼ å›¾ç‰‡ï¼š
POST https://oapi.dingtalk.com/media/upload?access_token=<token>&type=image,multipart 表å�•å—æ®µå��media,返回media_id(形如@lA...ï¼‰ã€‚å›¾æ ‡ç”¨æ–¹å½¢å›¾ï¼ˆå¦‚ 256×256 çš„ jpg/png)curl -F "media=@/path/to/img.png;type=image/png" \ "https://oapi.dingtalk.com/media/upload?access_token=<token>&type=image" -
用 mediaId æ›´æ–°ï¼šæœºå™¨äººå›¾æ ‡
dev app robot config --unified-app-id <id> --icon-media-id <media_id>ï¼›åº”ç”¨å›¾æ ‡dev app update --unified-app-id <id> --icon-media-id <media_id>。写æ“�作先--dry-runå†�--yes -
回读:
dev app robot get看iconMediaIdå�˜ä¸ºæ–°å€¼ï¼ˆåº”ç”¨å›¾æ ‡çœ‹app getçš„icon)
查「为什么没生效 / 机器人æ�œä¸�到 / æ�ƒé™�åŠ äº†è¿˜æŠ¥é”™ã€�
å…ˆ dev app version status——改é…�ç½®ä¸�ç‰äºŽç”Ÿæ•ˆï¼Œæœªå�‘到 RELEASE å°±ä¸�生效。