SMS送信機能性

このコミットが含まれているのは:
守矢諏訪子 2021-10-29 17:51:41 +09:00
コミット 58308829e2
7個のファイルの変更701行の追加29行の削除

ファイルの表示

@ -53,3 +53,6 @@ PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
NEXMO_KEY=""
NEXMO_SECRET=""

ファイルの表示

@ -14,6 +14,8 @@ use App\Models\FatherRelation;
use App\Models\MeetingApprovals;
use App\Models\TelActivation;
use App\Notifications\SmsNotification;
class ChildrenController extends Controller {
use AuthenticationTrait;
use AuthorizationTrait;
@ -41,30 +43,25 @@ class ChildrenController extends Controller {
}
$token = bin2hex(random_bytes(16));
$insert = ['tel' => $r->tel, 'token' => $token];
$create = [
'type' => 0,
'tel' => $r->tel,
'token' => $token,
'ttl' => date('Y-m-d H:i:s', time()+28800),
];
try {
// DBに入ります。
Child::create($insert);
TelActivation::create($create);
// SMSを送ります。
\Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($token));
} catch (\Throwable $e) {
// 失敗
Log::critical($e->getMessage());
return ['status_code' => 400, 'error_messages' => ['登録に失敗しました。']];
}
// TODO: SMSの送信、SMSコントローラーを作る後でします。
// try {
// $sms = new SMS;
// if (!$sms->send($r->tel, $token)) {
// // SMSの送信に失敗した場合
// return ['status_code' => 401, 'error_messages' => ['SMSの送信に失敗しました。電話番号が正しいかご確認ください。']];
// }
// } catch {
// // SMS APIのエラーの場合
// Log::critical($e->getMessage());
// return ['status_code' => 402, 'error_messages' => ['予期せぬエラーが発生しました。管理者へお問い合わせください。']];
// }
// 仮登録に成功した場合
return ['status_code' => 200, 'params' => ['tel' => $r->tel]];
}
@ -72,11 +69,11 @@ class ChildrenController extends Controller {
public function registerMain (Request $r) {
$validate = Validator::make($r->all(), [
'token' => 'required',
'identity' => 'required|max:20|alpha_num',
'email' => 'required|unique:children|max:255|email',
'password' => 'required|min:8|max:72|confirmed',
'last_name' => 'required|max:100',
'first_name' => 'required|max:100',
'identity' => 'required|max:20|alpha_num',
'image' => 'max:1024|mimes:jpg,png,gif',
'company' => 'max:100',
]);
@ -85,21 +82,19 @@ class ChildrenController extends Controller {
return ['status_code' => 422, 'error_messages' => $validate->errors()];
}
$password = Hash::make($r->password);
// 有効期限が切れている場合
if ($get = TelActivation::where('token', $r->token)->first() && strtotime($get->ttl) > time()) {
return ['status_code' => 400, 'error_messages' => ['仮登録の有効期限が切れました。改めて親にお問い合わせいただき、再登録の手続きを行ってください。']];
}
$password = Hash::make($r->password);
$insert = [
'identity' => 'hogehoge',
'identity' => $r->identity,
'email' => $r->email,
'tel' => $get->tel,
'password' => $password,
'last_name' => $r->last_name,
'first_name' => $r->first_name,
'identity' => $r->identity,
'image' => $r->image,
'company' => $r->company,
];
@ -145,12 +140,7 @@ class ChildrenController extends Controller {
TelActivation::create($create);
// SMSを送ります。
// TODO
// SMSの送信に失敗
// [
// 'status_code' => 401,
// 'error_messages' => ['SMSの送信に失敗しました。電話番号が使用できるか確認してださい。'],
// ]
\Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($token));
} catch (\Throwable $e) {
// 失敗
Log::critical($e->getMessage());

ファイルの表示

@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class TelActivation extends Model
{
use HasFactory;
protected $fillable = ['tel', 'token'];
protected $fillable = ['type', 'child_id', 'tel', 'token', 'ttl'];
}

61
backend/app/Notifications/SmsNotification.php ノーマルファイル
ファイルの表示

@ -0,0 +1,61 @@
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\NexmoMessage;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;
class SmsNotification extends Notification
{
use Queueable;
private $token;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct($token)
{
$this->token = $token;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['nexmo'];
}
/**
* Get the Nexmo / SMS representation of the notification.
*
* @param mixed $notifiable
* @return NexmoMessage
*/
public function toNexmo($notifiable)
{
return (new NexmoMessage())
->content('認証トークンは '.$this->token.' です。')
->unicode();
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}

ファイルの表示

@ -10,6 +10,7 @@
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^7.0.1",
"laravel/framework": "^8.12",
"laravel/nexmo-notification-channel": "^2.5",
"laravel/tinker": "^2.5"
},
"require-dev": {

615
backend/composer.lock generated
ファイルの表示

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "4a16c3c541bd99241cab1c21ce8e83ac",
"content-hash": "397d841f3fa22203eb38abc989f11c62",
"packages": [
{
"name": "asm89/stack-cors",
@ -122,6 +122,79 @@
],
"time": "2021-08-15T20:50:18+00:00"
},
{
"name": "composer/package-versions-deprecated",
"version": "1.11.99.4",
"source": {
"type": "git",
"url": "https://github.com/composer/package-versions-deprecated.git",
"reference": "b174585d1fe49ceed21928a945138948cb394600"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600",
"reference": "b174585d1fe49ceed21928a945138948cb394600",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.1.0 || ^2.0",
"php": "^7 || ^8"
},
"replace": {
"ocramius/package-versions": "1.11.99"
},
"require-dev": {
"composer/composer": "^1.9.3 || ^2.0@dev",
"ext-zip": "^1.13",
"phpunit/phpunit": "^6.5 || ^7"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
"dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"PackageVersions\\": "src/PackageVersions"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
},
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be"
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"support": {
"issues": "https://github.com/composer/package-versions-deprecated/issues",
"source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2021-09-13T08:41:34+00:00"
},
{
"name": "dflydev/dot-access-data",
"version": "v3.0.1",
@ -935,6 +1008,105 @@
},
"time": "2021-06-30T20:03:07+00:00"
},
{
"name": "laminas/laminas-diactoros",
"version": "2.8.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
"reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
"reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
"shasum": ""
},
"require": {
"php": "^7.3 || ~8.0.0 || ~8.1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"conflict": {
"phpspec/prophecy": "<1.9.0",
"zendframework/zend-diactoros": "*"
},
"provide": {
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"ext-curl": "*",
"ext-dom": "*",
"ext-gd": "*",
"ext-libxml": "*",
"http-interop/http-factory-tests": "^0.8.0",
"laminas/laminas-coding-standard": "~1.0.0",
"php-http/psr7-integration-tests": "^1.1",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.1",
"psalm/plugin-phpunit": "^0.14.0",
"vimeo/psalm": "^4.3"
},
"type": "library",
"extra": {
"laminas": {
"config-provider": "Laminas\\Diactoros\\ConfigProvider",
"module": "Laminas\\Diactoros"
}
},
"autoload": {
"files": [
"src/functions/create_uploaded_file.php",
"src/functions/marshal_headers_from_sapi.php",
"src/functions/marshal_method_from_sapi.php",
"src/functions/marshal_protocol_version_from_sapi.php",
"src/functions/marshal_uri_from_sapi.php",
"src/functions/normalize_server.php",
"src/functions/normalize_uploaded_files.php",
"src/functions/parse_cookie_header.php",
"src/functions/create_uploaded_file.legacy.php",
"src/functions/marshal_headers_from_sapi.legacy.php",
"src/functions/marshal_method_from_sapi.legacy.php",
"src/functions/marshal_protocol_version_from_sapi.legacy.php",
"src/functions/marshal_uri_from_sapi.legacy.php",
"src/functions/normalize_server.legacy.php",
"src/functions/normalize_uploaded_files.legacy.php",
"src/functions/parse_cookie_header.legacy.php"
],
"psr-4": {
"Laminas\\Diactoros\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "PSR HTTP Message implementations",
"homepage": "https://laminas.dev",
"keywords": [
"http",
"laminas",
"psr",
"psr-17",
"psr-7"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-diactoros/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-diactoros/issues",
"rss": "https://github.com/laminas/laminas-diactoros/releases.atom",
"source": "https://github.com/laminas/laminas-diactoros"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"time": "2021-09-22T03:54:36+00:00"
},
{
"name": "laravel/framework",
"version": "v8.53.1",
@ -1104,6 +1276,68 @@
},
"time": "2021-08-05T14:04:08+00:00"
},
{
"name": "laravel/nexmo-notification-channel",
"version": "v2.5.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/nexmo-notification-channel.git",
"reference": "178c9f0eb3a18d4b5682471bffca104a15d817a7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/nexmo-notification-channel/zipball/178c9f0eb3a18d4b5682471bffca104a15d817a7",
"reference": "178c9f0eb3a18d4b5682471bffca104a15d817a7",
"shasum": ""
},
"require": {
"composer/package-versions-deprecated": "^1.8",
"illuminate/notifications": "~5.8.0|^6.0|^7.0|^8.0",
"nexmo/laravel": "^2.4",
"php": "^7.1.3|^8.0"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
},
"laravel": {
"providers": [
"Illuminate\\Notifications\\NexmoChannelServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Illuminate\\Notifications\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylor@laravel.com"
}
],
"description": "Nexmo Notification Channel for laravel.",
"keywords": [
"laravel",
"nexmo",
"notifications"
],
"support": {
"issues": "https://github.com/laravel/nexmo-notification-channel/issues",
"source": "https://github.com/laravel/nexmo-notification-channel/tree/v2.5.1"
},
"time": "2020-12-22T17:10:24+00:00"
},
{
"name": "laravel/tinker",
"version": "v2.6.1",
@ -1172,6 +1406,141 @@
},
"time": "2021-03-02T16:53:12+00:00"
},
{
"name": "lcobucci/clock",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/clock.git",
"reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lcobucci/clock/zipball/353d83fe2e6ae95745b16b3d911813df6a05bfb3",
"reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"require-dev": {
"infection/infection": "^0.17",
"lcobucci/coding-standard": "^6.0",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-deprecation-rules": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.12",
"phpunit/php-code-coverage": "9.1.4",
"phpunit/phpunit": "9.3.7"
},
"type": "library",
"autoload": {
"psr-4": {
"Lcobucci\\Clock\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Luís Cobucci",
"email": "lcobucci@gmail.com"
}
],
"description": "Yet another clock abstraction",
"support": {
"issues": "https://github.com/lcobucci/clock/issues",
"source": "https://github.com/lcobucci/clock/tree/2.0.x"
},
"funding": [
{
"url": "https://github.com/lcobucci",
"type": "github"
},
{
"url": "https://www.patreon.com/lcobucci",
"type": "patreon"
}
],
"time": "2020-08-27T18:56:02+00:00"
},
{
"name": "lcobucci/jwt",
"version": "4.1.5",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/jwt.git",
"reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/fe2d89f2eaa7087af4aa166c6f480ef04e000582",
"reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582",
"shasum": ""
},
"require": {
"ext-hash": "*",
"ext-json": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
"ext-sodium": "*",
"lcobucci/clock": "^2.0",
"php": "^7.4 || ^8.0"
},
"require-dev": {
"infection/infection": "^0.21",
"lcobucci/coding-standard": "^6.0",
"mikey179/vfsstream": "^1.6.7",
"phpbench/phpbench": "^1.0",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-deprecation-rules": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.12",
"phpunit/php-invoker": "^3.1",
"phpunit/phpunit": "^9.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Lcobucci\\JWT\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Luís Cobucci",
"email": "lcobucci@gmail.com",
"role": "Developer"
}
],
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
"keywords": [
"JWS",
"jwt"
],
"support": {
"issues": "https://github.com/lcobucci/jwt/issues",
"source": "https://github.com/lcobucci/jwt/tree/4.1.5"
},
"funding": [
{
"url": "https://github.com/lcobucci",
"type": "github"
},
{
"url": "https://www.patreon.com/lcobucci",
"type": "patreon"
}
],
"time": "2021-09-28T19:34:56+00:00"
},
{
"name": "league/commonmark",
"version": "2.0.2",
@ -1855,6 +2224,77 @@
},
"time": "2021-09-20T10:50:11+00:00"
},
{
"name": "nexmo/laravel",
"version": "2.4.1",
"source": {
"type": "git",
"url": "https://github.com/Nexmo/nexmo-laravel.git",
"reference": "029bdc19fc58cd6ef0aa75c7041d82b9d9dc61bd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Nexmo/nexmo-laravel/zipball/029bdc19fc58cd6ef0aa75c7041d82b9d9dc61bd",
"reference": "029bdc19fc58cd6ef0aa75c7041d82b9d9dc61bd",
"shasum": ""
},
"require": {
"illuminate/support": "^5.2|^6.0|^7.0|^8.0",
"php": "^5.6|^7.1|^8.0",
"vonage/client": "^2.0"
},
"require-dev": {
"orchestra/testbench": "~3.0|^4.0|^5.0|^6.0",
"phpunit/phpunit": "^5.3|~6.0|~8.0|~9.0"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Nexmo\\Laravel\\NexmoServiceProvider"
],
"aliases": {
"Nexmo": "Nexmo\\Laravel\\Facade\\Nexmo"
}
}
},
"autoload": {
"psr-4": {
"Nexmo\\Laravel\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tim Lytle",
"email": "tim@nexmo.com",
"homepage": "http://twitter.com/tjlytle",
"role": "Developer"
},
{
"name": "Michael Heap",
"email": "michael.heap@nexmo.com",
"homepage": "http://twitter.com/mheap",
"role": "Developer"
},
{
"name": "Chris Tankersley",
"email": "chris.tankersley@nexmo.com",
"homepage": "http://twitter.com/dragonmantank",
"role": "Developer"
}
],
"description": "Laravel Package for Nexmo's PHP Client",
"support": {
"email": "devrel@nexmo.com",
"issues": "https://github.com/Nexmo/nexmo-laravel/issues",
"source": "https://github.com/Nexmo/nexmo-laravel/tree/2.4.1"
},
"time": "2020-12-04T13:11:05+00:00"
},
{
"name": "nikic/php-parser",
"version": "v4.13.0",
@ -5237,6 +5677,177 @@
],
"time": "2020-11-12T00:07:28+00:00"
},
{
"name": "vonage/client",
"version": "2.4.0",
"source": {
"type": "git",
"url": "https://github.com/Vonage/vonage-php-sdk.git",
"reference": "29f23e317d658ec1c3e55cf778992353492741d7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Vonage/vonage-php-sdk/zipball/29f23e317d658ec1c3e55cf778992353492741d7",
"reference": "29f23e317d658ec1c3e55cf778992353492741d7",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^7.0",
"php": ">=7.2",
"vonage/client-core": "^2.0"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tim Lytle",
"email": "tim@nexmo.com",
"homepage": "http://twitter.com/tjlytle",
"role": "Developer"
},
{
"name": "Michael Heap",
"email": "michael.heap@vonage.com",
"role": "Developer"
},
{
"name": "Lorna Mitchell",
"email": "lorna.mitchell@vonage.com",
"role": "Developer"
},
{
"name": "Chris Tankersley",
"email": "chris.tankersley@vonage.com",
"role": "Developer"
}
],
"description": "PHP Client for using Vonage's API.",
"support": {
"email": "devrel@nexmo.com",
"issues": "https://github.com/Vonage/vonage-php-sdk/issues",
"source": "https://github.com/Vonage/vonage-php-sdk/tree/2.4.0"
},
"time": "2020-09-10T18:29:08+00:00"
},
{
"name": "vonage/client-core",
"version": "2.9.2",
"source": {
"type": "git",
"url": "https://github.com/Vonage/vonage-php-sdk-core.git",
"reference": "2b734ff7d86d4b6f169df49aed3aefcdac7a40d0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Vonage/vonage-php-sdk-core/zipball/2b734ff7d86d4b6f169df49aed3aefcdac7a40d0",
"reference": "2b734ff7d86d4b6f169df49aed3aefcdac7a40d0",
"shasum": ""
},
"require": {
"composer/package-versions-deprecated": "^1.11",
"ext-json": "*",
"ext-mbstring": "*",
"laminas/laminas-diactoros": "^2.4",
"lcobucci/jwt": "^3.4|^4.0",
"php": ">=7.2",
"psr/container": "^1.0",
"psr/http-client-implementation": "^1.0",
"psr/log": "^1.1",
"vonage/nexmo-bridge": "^0.1.0"
},
"require-dev": {
"guzzlehttp/guzzle": ">=6",
"helmich/phpunit-json-assert": "^3.3",
"php-http/mock-client": "^1.4",
"phpstan/phpstan": "^0.12",
"phpunit/phpunit": "^8.5|^9.4",
"roave/security-advisories": "dev-latest",
"softcreatr/jsonpath": "^0.6.4",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Vonage\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Chris Tankersley",
"email": "chris.tankersley@vonage.com",
"role": "Developer"
},
{
"name": "Lorna Mitchell",
"email": "lorna.mitchell@vonage.com",
"role": "Developer"
}
],
"description": "PHP Client for using Vonage's API.",
"homepage": "https://developer.nexmo.com",
"support": {
"docs": "https://developer.nexmo.com",
"email": "devrel@vonage.com",
"issues": "https://github.com/Vonage/vonage-php-sdk-core/issues",
"source": "https://github.com/Vonage/vonage-php-sdk-core"
},
"time": "2021-04-30T21:41:08+00:00"
},
{
"name": "vonage/nexmo-bridge",
"version": "0.1.0",
"source": {
"type": "git",
"url": "https://github.com/Nexmo/vonage-php-nexmo-bridge.git",
"reference": "62653b1165f4401580ca8d2b859f59c968de3711"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Nexmo/vonage-php-nexmo-bridge/zipball/62653b1165f4401580ca8d2b859f59c968de3711",
"reference": "62653b1165f4401580ca8d2b859f59c968de3711",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^0.12.39",
"phpunit/phpunit": "^7.4",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"autoload": {
"files": [
"src/autoload.php"
],
"psr-4": {
"Vonage\\NexmoBridge\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Chris Tankersley",
"email": "chris.tankersley@vonage.com"
}
],
"description": "Provides a bridge for using the Vonage PHP SDK with the older Nexmo namespace",
"support": {
"issues": "https://github.com/Nexmo/vonage-php-nexmo-bridge/issues",
"source": "https://github.com/Nexmo/vonage-php-nexmo-bridge/tree/master"
},
"time": "2020-08-25T02:50:42+00:00"
},
{
"name": "webmozart/assert",
"version": "1.10.0",
@ -7806,5 +8417,5 @@
"php": "^7.3|^8.0"
},
"platform-dev": [],
"plugin-api-version": "2.1.0"
"plugin-api-version": "2.0.0"
}

ファイルの表示

@ -30,4 +30,10 @@ return [
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
'nexmo' => [
'key' => env('NEXMO_KEY'),
'secret' => env('NEXMO_SECRET'),
'sms_from' => '819012345678',
],
];