首页龙虾技能列表 › Verifying Phones

Verifying Phones

v1.0.0

Verifies phone numbers via SMS OTP using the Sendly Verify API. Sends codes, checks codes, handles expiry, and provides hosted verification sessions. Applies...

0· 49·0 当前·0 累计
by @sendly-live·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/4
安全扫描
VirusTotal
Pending
查看报告
OpenClaw
可疑
medium confidence
The skill's instructions clearly use an API key (SENDLY_API_KEY) to call the Sendly Verify service, but the skill metadata declares no required credentials or configuration — this mismatch and the unknown source/homepage warrant caution.
评估建议
This skill appears to be a straightforward wrapper for the Sendly Verify API, but the SKILL.md expects you to provide SENDLY_API_KEY while the skill metadata lists no required env vars. Before installing: 1) Treat this as needing your Sendly API key—only provide a key to this skill if you trust the publisher. 2) Prefer using a test/sandbox key (sk_test_*) initially. 3) Ask the publisher to update the registry metadata to declare SENDLY_API_KEY as a required credential and to provide a homepage o...
详细分析 ▾
用途与能力
The name and description (SMS OTP via Sendly) match the SKILL.md examples: send, check, resend, and hosted sessions are all documented. The claimed capability is internally consistent with the API calls shown.
指令范围
The runtime instructions repeatedly reference an environment variable (SENDLY_API_KEY) and show curl/SDK calls that require that secret, but the skill's metadata lists no required env vars or primary credential. The instructions do not attempt to read unrelated system files, but they do rely on a credential that is not declared in the registry metadata.
安装机制
This is an instruction-only skill with no install spec and no code files, which minimizes install-time risk.
凭证需求
The skill needs an API key to function (SENDLY_API_KEY is used throughout), which is proportionate to the task. However, the registry metadata declares no required credentials or primaryEnv, so the skill's declared environment requirements are incomplete/mismatched. That omission increases risk because a user may not realize they must provide a secret.
持久化与权限
The skill is not marked always:true, does not request persistent system-wide changes, and does not declare access to other skills' configs.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/4

Initial release of verifying-phones skill. - Verifies phone numbers via SMS OTP using the Sendly Verify API. - Supports sending and checking OTP codes, handling expiry, resending, and limiting attempts. - Provides hosted verification sessions with redirect and token validation. - Includes Node.js SDK and REST API examples. - Offers sandbox mode for testing without sending real SMS. - Detailed error handling and documentation links included.

● Pending

安装命令 点击复制

官方npx clawhub@latest install verifying-phones
镜像加速npx clawhub@latest install verifying-phones --registry https://cn.clawhub-mirror.com

技能文档

Quick start

import Sendly from "@sendly/node";

const sendly = new Sendly(process.env.SENDLY_API_KEY!);

const verification = await sendly.verify.send({ to: "+15551234567" }); console.log(verification.id); // ver_abc123

const result = await sendly.verify.check(verification.id, { code: "123456" }); console.log(result.status); // "verified" | "failed" | "expired"

REST API

Base URL: https://sendly.live/api/v1

Send OTP

curl -X POST https://sendly.live/api/v1/verify \
  -H "Authorization: Bearer $SENDLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": "+15551234567", "app_name": "MyApp", "code_length": 6, "timeout_secs": 300}'

Required: to (E.164 format)

Optional: app_name (shown in SMS), code_length (4–10, default 6), timeout_secs (default 300)

Response:

{
  "id": "ver_abc123",
  "status": "pending",
  "phone": "+15551234567",
  "expires_at": "2026-04-01T10:05:00Z"
}

In sandbox mode (sk_test_ keys), the response includes sandbox_code with the actual code.

Check code

curl -X POST https://sendly.live/api/v1/verify/ver_abc123/check \
  -H "Authorization: Bearer $SENDLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code": "123456"}'

Statuses: verified, failed (wrong code), expired, max_attempts_exceeded (3 attempts max)

Resend OTP

curl -X POST https://sendly.live/api/v1/verify/ver_abc123/resend \
  -H "Authorization: Bearer $SENDLY_API_KEY"

Hosted verification sessions

Zero-code verification UI hosted by Sendly:

curl -X POST https://sendly.live/api/v1/verify/sessions \
  -H "Authorization: Bearer $SENDLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"success_url": "https://yourapp.com/verified?token={TOKEN}", "brand_name": "MyApp"}'

Returns a url the user visits. After verification, redirects to success_url with a token. Validate the token server-side:

curl -X POST https://sendly.live/api/v1/verify/sessions/validate \
  -H "Authorization: Bearer $SENDLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"token": "tok_from_redirect"}'

Node.js SDK

import Sendly from "@sendly/node";
const sendly = new Sendly(process.env.SENDLY_API_KEY!);

const v = await sendly.verify.send({ to: "+15551234567", appName: "MyApp" }); const check = await sendly.verify.check(v.id, { code: "123456" }); const resend = await sendly.verify.resend(v.id); const session = await sendly.verify.sessions.create({ successUrl: "https://app.com/done?token={TOKEN}", brandName: "MyApp" }); const validated = await sendly.verify.sessions.validate({ token: "tok_xxx" });

Error handling

ErrorMeaningAction
invalid_phone_numberNot E.164 formatFormat as +{country}{number}
verification_expiredCode timed outCall resend or start new verification
max_attempts_exceeded3 wrong codesStart new verification
rate_limit_exceededToo many requestsWait and retry

Sandbox testing

With sk_test_ keys, the sandbox_code field in the send response contains the code. No real SMS is sent. OTP to +15005550000 always works.

Full reference

  • Verify API docs: https://sendly.live/docs/verify
  • OTP tutorial: https://sendly.live/docs/tutorials/otp
  • Error handling guide: https://sendly.live/docs/how-to/handle-otp-errors
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务