使用smsGateway.me API发送单号码短信时提示设备未找到错误
排查smsGateway.me API设备ID矛盾问题的原因
从你提供的错误信息和代码来看,核心问题非常明显——发送短信时传入的设备ID和查询设备详情时用的ID完全不一致!
具体问题分析
看你的PHP代码片段:
$deviceID = 90841; // ... $result = $smsGateway->sendMessageToNumber('0715605476', $message,2/*, $options*/);
你明明定义了正确的设备ID变量$deviceID = 90841,调用getDevice($deviceID)时也正确使用了这个变量,所以能成功返回设备详情;但调用sendMessageToNumber时,第三个参数你硬编码成了2,而不是$deviceID!这就导致API在尝试查找ID为2的设备,自然会返回"No device found with that ID"的错误。
修正后的代码
只需要把sendMessageToNumber的第三个参数替换为你定义好的$deviceID变量即可:
<?php require_once 'smsGateway.php'; $number='07****XXXX'; $message="Hi "; $smsGateway = new SmsGateway('user@gmai.com', '****'); $deviceID = 90841; // 修正参数:用$deviceID代替硬编码的2 $result = $smsGateway->sendMessageToNumber('0715605476', $message, $deviceID/*, $options*/); $devices = $smsGateway->getDevice($deviceID); echo json_encode($result)."<br><br>".json_encode($devices); ?>
额外排查建议(以防后续遇到类似问题)
- 确认设备在线状态:虽然你的设备
last_seen有更新记录,但可以检查设备是否处于正常在线可发送状态(API通常要求设备在线才能成功发送短信) - 核对账号权限:确保你的账号拥有使用该设备发送短信的权限
- 检查参数顺序:确认
sendMessageToNumber的参数顺序和API文档要求一致(你这里顺序是对的,但参数值出错了)
内容的提问来源于stack exchange,提问作者dennohpeter
相关产品推荐
相关产品推荐

