avtonom / sms-streamtelecom-bundle

为PHP的Symfony2扩展包提供发送短信通知的服务提供商

v1.1.0 2017-06-28 08:12 UTC

This package is not auto-updated.

Last update: 2024-09-16 19:11:40 UTC


README

Stream Telecom (stream-telecom.ru) 为PHP的Symfony2扩展包提供的发送短信通知的服务提供商。使用KPhoenSmsSenderBundle为Symfony和Carpe-Hora/SmsSender。

包页面: https://github.com/Avtonom/sms-streamtelecom-bundle

特性

  • 获取会话ID(接收令牌,授权)
  • 发送单个短信消息(不考虑收件人的时区)
  • 获取用户余额
  • 通过标准功能表单验证输入数据。

未来可能

  • 防止过度频繁发短信的安全(阻止)

HttpAdapters

HttpAdapters 负责从远程API获取数据。

目前,有以下适配器

  • CurlHttpAdapter 用于 cURL;(推荐)
  • BuzzHttpAdapter 用于 Buzz,一个用于发送HTTP请求的轻量级PHP 5.3库;(需要额外安装此依赖)

安装

在你的项目根目录中运行以下命令,假设你的项目已设置composer

composer.phar require avtonom/sms-streamtelecom-bundle ~1.1

切换 ~1.1 为最新标签。

将包添加到 app/AppKernel.php

$bundles(
    ...
       new KPhoen\SmsSenderBundle\KPhoenSmsSenderBundle(),
       new Avtonom\Sms\StreamtelecomBundle\AvtonomSmsStreamtelecomBundle(),
    ...
);

配置选项(config.yaml)

k_phoen_sms_sender:
    pool:         ~   # right now, only "memory" is supported
    providers:    [streamtelecom]
    factories:    [ "%kernel.root_dir%/../vendor/avtonom/sms-streamtelecom-bundle/Avtonom/Sms/StreamtelecomBundle/Resources/config/provider_factories.xml" ]

    streamtelecom:
        login:     %sms.provider.streamtelecom.login%
        password:  %sms.provider.streamtelecom.password%
        originators:  %sms.provider.streamtelecom.originators%

配置选项(parameters.yaml)

parameters:
    sms.provider.streamtelecom.login: ~
    sms.provider.streamtelecom.password: ~
    sms.provider.streamtelecom.originators: [] # Leave an empty array if there is no strict checking the sender's name
    

创建一个名为 "avtonom_sms.logger" 的记录器。示例代码(services.yml)

services:
    avtonom_sms.logger:
        public: true
        class: Symfony\Bridge\Monolog\Logger
        arguments: [sms]
    

使用

try {
    $sendResult = $this->get('sms.sender')->send('0642424242', 'It\'s the answer.', 'Kévin');
} catch(\SmsSender\Exception\WrappedException $e){
    if($e->getWrappedException() && $e->getWrappedException() instanceof \SmsSender\Exception\AdapterException){
        $smsException = new \Exception($e->getWrappedException()->getMessage(), $e->getWrappedException()->getCode(), $e);
        if($e->getWrappedException()->getData()){
            var_dump($e->getWrappedException()->getData()); // request data
        }

    }
    throw $smsException;
}

需要帮助?

  1. 如果你发现了错误,请创建一个问题。