lakshmaji/twilio

使用 Twilio 发送 SMS

v1.2.3 2017-04-22 18:14 UTC

This package is auto-updated.

Last update: 2024-09-12 10:19:07 UTC


README

网页上的 Wiki

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock

INDEX

##这是什么?

  • 此包用于向任何手机号码发送短信。
  • 它使用 Twilio API。
  • 它需要 AccountSIDAuthToken,它们可以通过在 Twilio 注册生成
    • 注册后点击“帐户”,在那里您将能够看到 authsid 和 authtoken。
    • 您已分配一个发送者手机号码,您可以在 Twilio 找到它,用于发送文本消息或 MMS 以及短码等。

##安装

从终端运行此命令

    composer require lakshmaji/twilio
    composer dumpautoload
    composer update

##LARAVEL 集成

您需要添加服务提供程序。打开 app/config/app.php,并在 providers 数组中添加一个新项。

  Lakshmaji\Twilio\TwilioServiceProvider::class,

然后,添加一个 Facade 以便更方便地使用。在 app/config/app.php 中,将以下行添加到 aliases 数组

  'Twilio'    => Lakshmaji\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 参数
响应

##其他

#####发送 SMS

  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); 

##发送 SMS

<?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  lakshmaji 
 */
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  lakshmaji 
 */
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 Lakshmaji\Twilio\Exception\TwilioException;


/**
 * Twilio - A Simple Exception handler class to Catch
 * Exceptions thrown by TwilioException class 
 *
 * @author   lakshmaji 
 */
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 跟踪帐户使用

  • 如果您正在尝试使用 Twilio 实现短信功能,您需要在 Twilio 验证目标手机号码列表 VERIFIED NUMBERS
  • 在发送消息之前,请确保您已在 Twilio 中启用了 GEO-PERMISSIONS GEO PERMISSIONS

##许可证

MIT 许可证 (MIT)

@ MUTYALA ANANTHA LAKSHMAJI