Wallogit.com
2017 © Pedro PelΓ‘ez
Send sms from sms-fly
, (*1)
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ SMS ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Π²Π°ΡΠ΅ Laravel-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ "SMS-fly"., (*2)
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:, (*3)
$ composer require kagatan/sms-fly
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ
composer. ΠΠ»Ρ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅., (*4)
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Laravel Π²Π΅ΡΡΠΈΠΈ 5.5 ΠΈ Π²ΡΡΠ΅, ΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ Π² ΡΠ΅ΠΊΡΠΈΠΈ providers ΡΠ°ΠΉΠ»Π° ./config/app.php:, (*5)
'providers' => [
// ...
Kagatan\SmsFly\SmsFlyServiceProvider::class,
]
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°ΡΠ°Π΄:, (*6)
'aliases' => [
...
'SmsFly' => Kagatan\SmsFly\Facades\SmsFly::class
]
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΠ°ΠΉΠ» config/services.php :, (*7)
// config/services.php
...
'sms-fly' => [
'login' => function_exists('env') ? env('SMSFLY_LOGIN', '') : '',
'password' => function_exists('env') ? env('SMSFLY_PASSWORD', '') : '',
'from' => function_exists('env') ? env('SMSFLY_FROM', '') : '',
],
...
ΠΠ»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°:, (*8)
php artisan vendor:publish --provider="Kagatan\SmsFly\SmsFlyServiceProvider"
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ./.env Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊΠ»ΡΡΠΈ, (*9)
SMSFLY_LOGIN=xxxxx SMSFLY_PASSWORD=xxxxx SMSFLY_FROM=SENDER-NAME
composer update kagatan/sms-fly
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ SMS ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π² Laravel-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ :, (*10)
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° SmsFlyMessage:, (*11)
| ΠΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
from() |
ΠΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
to() |
ΠΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
content() |
Π’Π΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ |
startTime() |
ΠΡΠ΅ΠΌΡ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
endTime() |
ΠΡΠ΅ΠΌΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
lifeTime() |
ΠΡΠ΅ΠΌΡ, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π°Π±ΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ°ΡΠ°Ρ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
rate() |
Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ(ΠΉ) Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠΈΠ½ΡΡΡ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
desc() |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ (ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π²Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅). (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
login() |
API Π»ΠΎΠ³ΠΈΠ½, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ· config(ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
password() |
API ΠΏΠ°ΡΠΎΠ»Ρ, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ· config(ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) |
toJson() |
ΠΠ±ΡΠ΅ΠΊΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π² JSON |
toArray() |
ΠΠ±ΡΠ΅ΠΊΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ |
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ:, (*12)
<?php
use Illuminate\Notifications\Notification;
use Kagatan\SmsFly\SmsFlyChannel;
use Kagatan\SmsFly\SmsFlyMessage;
/**
* Notification object.
*/
class InvoicePaid extends Notification
{
/**
* Get the notification channels.
*
* @param mixed $notifiable
*
* @return array|string
*/
public function via($notifiable)
{
return [SmsFlyChannel::class];
}
/**
* Get the SMS Fly Message representation of the notification.
*
* @param mixed $notifiable
*
* @return SmsFlyMessage
*/
public function toSmsFly($notifiable)
{
return SmsFlyMessage::create()
->content('Some SMS notification message');
}
}
Π ΡΠ²ΠΎΠ΅ΠΉ Π½ΠΎΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ routeNotificationForSmsFly(), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΡ
Π½ΠΎΠΌΠ΅ΡΠΎΠ²., (*13)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
class User extends Model
{
use Notifiable;
/**
* Route notifications for the SmsFly channel.
*
* @param $notifiable
* @return string
*/
public function routeNotificationForSmsFly($notifiable)
{
return $this->phone;
}
}
ΠΡΠΈΠΌΠ΅Ρ c ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Notifiable Trait:, (*14)
$user->notify(new InvoicePaid());
ΠΡΠΈΠΌΠ΅Ρ c ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Notification Facade:, (*15)
Notification::send($users, new InvoicePaid());
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ SMS Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΠ°Π΄ΠΎΠ²(Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Notification):, (*16)
<?php
use Kagatan\SmsFly\Facades\SmsFly;
use Kagatan\SmsFly\SmsFlyMessage;
public function test(){
$message = SmsFlyMessage::create()
->content("Example sending SMS.")
->to("380987654210")
->from("WiFi-POINT")
->toArray();
$id = SmsFly::send($message);
$errors = SmsFly::getErrors();
dd($id, $errors);
}
ΠΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT., (*17)