我实际上使用 nexmo 成功发送了短信。
目前,我需要接收短信功能来进行 GPS 跟踪。我读了这个nexmo-inbound 文档,我有问题:
是免费的还是付费的?
\n\n这是付费服务,但新注册者将获得 \xe2\x82\xac2.00 积分来启动。在您用完初始信用额度之前,我们不需要任何账单信息。\xe2\x82\xac2.00 为您提供了足够的功能来使用许多 API,而不仅仅是 SMS。
\n\n发送或接收短信(通常)会产生象征性的费用,但该费用可能会因地区、国家和电话公司的不同而有所不同。对于大多数国家/地区,它应该在 \xe2\x82\xac0.0057 左右一条消息。
\n\n号码也是按月租用的。这大约是 \xe2\x82\xac0.90/月(同样,取决于电话号码和功能的区域)。
\n\n如何在 Laravel 中进行设置
\n\n我们确实提供了一个 Laravel 包,它实际上刚刚发布了 2.0.0 版的新版本 - nexmo/laravel( https://github.com/nexmo/nexmo-laravel )。这提供了一种从服务容器获取客户端的简单方法,并且还设置了一个外观。nexmo/client如果你想直接使用也可以使用。
首先,我们需要一个控制器。我们将创建一个可以发送短信(作为演示)的控制器,然后创建一个可以接收短信的控制器。我将SmsController在以下位置创建app/Http/Controllers/SmsController.php:
# app/Http/Controllers/SmsController.php\n<?php\n\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Http\\Request;\n\nclass SmsController extends Controller\n{\n public function send()\n {\n }\n\n public function receive()\n {\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n然后我们将在以下位置注册这些路由routes/web.php:
Route::get(\'/sms/send\', \'SmsController@send\');\nRoute::get(\'/sms/receive\', \'SmsController@receive\');\nRun Code Online (Sandbox Code Playgroud)\n\n发送短信相当简单。您可以从服务容器中获取我们的对象并通过一次调用发送。我们可以将我们的类更改为这样(替换TO_NUMBER为您想要接收消息的任何电话号码):
class SmsController extends Controller\n{\n public function send()\n {\n $nexmo = $this->app->make(\\Nexmo\\Client::class);\n $message= $nexmo->message()->send([\n \'to\' => TO_NUMBER,\n \'from\' => \'Acme Inc\',\n \'text\' => \'A text message sent using the Nexmo SMS API\'\n ]);\n $response = $message->getResponseData();\n\n return response()->json($response);\n }\n\n public function receive()\n {\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n如果您访问http://localhost/sms/send,它应该向您配置的任何号码发送短信。
接收文本不需要我们的 SDK,您只需要有一个可以接收请求的端点即可。首先,让我们改变我们的receive()工作方法:
use Illuminate\\Http\\Request;\n\nclass SmsController extends Controller\n{\n public function send()\n {\n $nexmo = $this->app->make(\\Nexmo\\Client::class);\n $message= $nexmo->message()->send([\n \'to\' => TO_NUMBER,\n \'from\' => \'Acme Inc\',\n \'text\' => \'A text message sent using the Nexmo SMS API\'\n ]);\n $response = $message->getResponseData();\n\n return response()->json($response);\n }\n\n public function receive(Request $request)\n {\n $smsFrom = $request->query(\'msisdn\');\n $smsMessage = $request->query(\'text\');\n\n return response()->json([\'from\' => $smsFrom, \'message\' => $smsMessage]);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n您可以点击https://localhost/sms/receive?msisdn=15555551234&text=Hello%20World,您应该得到类似于以下内容的输出:
{\n "from": "15555551234",\n "message": "Hello World"\n}\nRun Code Online (Sandbox Code Playgroud)\n\n现在我们需要告诉 Nexmo 将 SMS 消息发送到哪里。在 Nexmo 仪表板上,转到“数字”,然后转到“您的数字”。在“管理”下单击齿轮图标。在顶部文本框中,输入世界可访问的地址(即:本地主机将不起作用),例如“ http://example.com/sms/receive ”或“ http://example.ngrok.io/sms/receive ” ,然后单击“确定”保存。
\n\n如果您向 Nexmo 号码发送短信,它应该尝试命中配置的端点,并且您的应用程序可以根据需要处理传入数据。
\n\n如果您没有可通过互联网访问的测试服务器,我们建议您使用ngrok。它是一个免费程序,将通过可访问的地址公开您的本地开发环境。我们这里有一篇文章。
\n\nSMS 系统的完整文档可以在https://developer.nexmo.com/messaging/sms/overview找到。从技术上讲,PHP 示例是在 Slim 中使用的,但直接使用 SDK,因此其中没有任何 Slim 特定的块。
\n\n您需要一个帐户才能使用该系统,因此您可以在https://dashboard.nexmo.com/sign-up上注册。您将首先获得 \xe2\x82\xac2.00,这足以租用一个号码并开始发送和接收消息。
\n| 归档时间: |
|
| 查看次数: |
1138 次 |
| 最近记录: |