我正在尝试使用这个API,但是遇到了第一个障碍。在线聊天的人不知道,并且已经离开了它,有人会给我发电子邮件。我只是在按照www.example.com上给出的继续操作之前尝试实现这个示例https://developers.clicksend.com/docs/rest/v3/?php#reseller-transfer-credit
所以我使用composer来获取包:
编辑器需要点击发送/点击发送-php;
我希望在Laravel类(BaseComms)中使用它,因此实现了该方法
public static function sms_send($to, $msgbody) {
$smsuname = Config("app.api_sms_username");
$smspword = Config("app.api_sms_username");
$config = ClickSend\Configuration::getDefaultConfiguration()->setUsername($smsuname)->setPassword($smspword);
$apiInstance = new ClickSend\Api\SMSApi(new GuzzleHttp\Client(), $config);
$msg = new \ClickSend\Model\SmsMessage();
$msg->setBody("test body");
$msg->setTo("********");
$msg->setSource("sdk");
$sms_messages = new \ClickSend\Model\SmsMessageCollection();
$sms_messages->setMessages([$msg]);
try {
$result = $apiInstance->smsSendPost($sms_messages);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SMSApi->smsSendPost: ', $e->getMessage(), PHP_EOL;
}
}
待调用
BaseComms::send_sms(0123456789,"test");
但是,我得到**Class '\ClickSend\Configuration'**未找到错误。我知道我需要指定要使用的名称空间,但不确定这是什么,例如
use Illuminate\Database\Eloquent\Model;
根据建议,我已将此行更改为
$config = \ClickSend\Configuration::getDefaultConfiguration()->setUsername($smsuname)->setPassword($smspword);
但是,我现在得到错误
未找到类“单击发送\配置”
今天更新,ClickSend正在指责composer(我已经在他们的指导下重新安装,给予了完全相同的错误)。所以我已经尝试按照他们的API使用CURL。
public static function sms_send($to, $msgbody) {
$smsapiuname = Config("app.api_sms_username");
$smsapikey = Config("app.api_sms_key");
$sms = [
"messages" => [
"to" => "0736*****a mobile number ****",
"source" => "sdk",
"body" => "test message"
]
];
$authheader = ['Authorization: Basic ' . base64_encode("$smsapiuname:$smsapikey")];
CURL::send("https://rest.clicksend.com/v3/sms/send", $sms, $authheader);
}
然后在CURL类中
public static function send($url, $curldata, $httpheader = null) {
$curlinstance = curl_init();
$datastring = http_build_query($curldata);
if ($httpheader) {
curl_setopt($curlinstance, CURLOPT_HTTPHEADER, $httpheader);
}
curl_setopt($curlinstance, CURLOPT_URL, $url);
curl_setopt($curlinstance, CURLOPT_POST, true);
curl_setopt($curlinstance, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlinstance, CURLOPT_POSTFIELDS, $datastring);
$result = curl_exec($curlinstance);
}
但是$result的值为
{"http_code":400,"response_code":"BAD_REQUEST","response_msg":"The messages array is empty.","data":null}
4条答案
按热度按时间vnzz0bqm1#
我已经得到了这个工作在laravel与以下:在控制器顶部添加以下“use”
然后在函数中输入以下内容(作为示例):
mmvthczy2#
通过composer安装后,我在我的控制器顶部添加了
use ClickSend;
。我还将
new GuzzleHttp\Client()
调用调整为new \GuzzleHttp\Client()
(在前面添加一个“\”)这就是我所要做的让它在我这边工作。
55ooxyrt3#
供应商ClickSend似乎有非常蹩脚的支持,没有功能代码和示例。
所以我调查了Twilio(其他供应商可用!!)。
更便宜,而且支持实际上是示范性的。支持指南实际上在大约10分钟内得到了我想要的作为演示,完全像示例代码所说的那样。
那么
https://www.twilio.com/docs/sms/quickstart/php#install-php-and-the-twilio-php-helper-library
绝对没有错的 composer 作为点击发送试图作为借口。
t2a7ltrp4#
对我来说,这是因为
/vendor
的导入路径是错误的(__DIR__
对我来说不正确)。对我来说,实际上