asterism / twilio
使用 Twilio 发送短信
dev-main
2021-02-03 07:58 UTC
Requires
- php: >=7.4.0
- twilio/sdk: ^6.1
This package is not auto-updated.
Last update: 2024-09-26 23:45:25 UTC
README
INDEX
##这是什么?
- 此包用于向任何手机号码发送短信。
- 它使用 Twilio API。
- 它需要 AccountSID 和 AuthToken,它们可以通过在 Twilio 注册后生成。
- 注册后,点击“账户”,在那里您可以查看authsid和authtoken。
- 您已分配一个发送者手机号码,可在 Twilio 上找到,用于发送文本消息或 MMS 以及短码等。
##安装
- 从 https://github.com/asterism/twilio 下载包。
- 或者您可以从终端运行以下命令
- 使用 composer,您可以运行以下行 composer require asterism/twilio
从终端运行此命令
composer require asterism/twilio
composer dumpautoload
composer update
##LARAVEL 集成
您需要添加服务提供商。打开 app/config/app.php,并在 providers 数组中添加一个新项目。
asterism\Twilio\TwilioServiceProvider::class,
然后,添加一个 Facade 以便于使用。在 app/config/app.php 中,向 aliases 数组添加以下行
'Twilio' => asterism\Twilio\Facade\Twilio::class,
再次运行 composer update
方法、可用参数和响应
#####方法
message(array, string, boolean, boolean, boolean)
$message_array = array( 'sender_id' => 'TWILIO_AUTH_SID', 'sender_secret' => 'TWILIO_AUTH_SECRET', 'reciver_mobile' => 'MOBILE_NUMBER', 'media_url' => 'MEDIA_URL', 'otp' =>'OTP', 'sender' => 'TWILIO_SOURCE_NUMBER' );
message_array 参数
响应
##其他
#####发送短信
Twilio::message($message_array,$op="only msg", true, false, false ); // sms
#####发送 MMS
Twilio::message($message_array,$op="only MMS", false, false, true ); // media
#####发送 OTP
Twilio::message($message_array,$op="only verfication code", false, true, false ); // otp
#####发送 SMS 和 MMS
Twilio::message($message_array,$op="This is combaination both SMS and MMS", true, false, true ); // sms , media
#####无效的方法调用
Twilio::message($message_array,$op="All set to true sms,mms,otp", true, true, true ); // sms , otp , media Twilio::message($message_array,$op="all set to false", false, false, false ); // none defined Twilio::message($message_array,$op="all considered to be false"); // none defined Twilio::message($message_array);
##发送短信
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Twilio; /** * Twilio - Package usage Example * * @access public * @since 1.2.0 * @author asterism <lakshmajee88@gmail.com> */ class TwilioTest extends Controller { public function testMesssage() { // initialize message array $message_array = array( 'sender_id' => 'TWILIO_AUTH_ID', 'sender_secret' => 'TWILIO_AUTH_SECRET', 'reciver_mobile' => '999999999', 'media_url' => 'http://goo.gl/F9igRq', 'otp' =>'325565', 'sender' => 'TWILIO_SOURCE_NUMBER' ); // This will send message only $sms_response = Twilio::message($message_array,$op="only msg", true, false, false ); return response()->json($sms_response,200); } } // end of class TwilioTest // end of file TwilioTest.php
##Laravel 的示例代码及示例 .env 文件
.env 文件
APP_ENV=local APP_DEBUG=true APP_KEY=BPfhzoGJ7RJB8D3qoyP6KZ2MjX2MAzcN DB_HOST=127.0.0.1 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null TWILIO_SOURCE_MOBILE_NUMBER=+44778338721 TWILIO_USER_ID=ACef0d5a519rwetbf821ea07c2fdbfd8204e TWILIO_USER_PASSWORD=a0fb23srfdsf4825cbb9501df25b906a74
使用上述 ".env" 文件的代码如下
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Twilio; /** * Twilio - Package usage Example * * @access public * @since 1.2.0 * @author asterism <lakshmajee88@gmail.com> */ class TwilioTest extends Controller { public function testMesssage() { // initialize message array $message_array = array( 'sender_id' => 'TWILIO_USER_ID', 'sender_secret' => 'TWILIO_USER_PASSWORD', 'reciver_mobile' => '99999999999', 'media_url' => 'http://goo.gl/F9igRq', 'otp' =>'325456', 'sender' => 'TWILIO_SOURCE_MOBILE_NUMBER' ); // This will send OTP only $sms_response = Twilio::message($message_array,$op="otp only", false, true, false ); // otp return response()->json($sms_response,200); } } // end of class TwilioTest // end of file TwilioTest.php
处理异常
<?php namespace App\Exceptions; use Exception; use asterism\Twilio\Exception\TwilioException; /** * Twilio - A Simple Exception handler class to Catch * Exceptions thrown by TwilioException class * * @author asterism <lakshmajee88@gmail.com> */ class Handler extends ExceptionHandler { //.... //................. //.... /** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e) { if($e instanceof TwilioException) { return response()->json(array('message'=>$e->getMessage(),'status' =>$e->getStatusCode()),500); } return parent::render($request, $e); } }
在 Laravel 中,我们可以通过使用 Handler.php(您还可以使用自定义异常处理程序)轻松处理错误。
Twilio TRAIL 账户使用
##许可
@ MUTYALA ANANTHA asterism

