Esempio n. 1
0
def countdown_send(template_id, phone_number, content_var_dict):
    sms_client = SmsClient(conf.config)
    try:
        response = sms_client.send_message_2(conf.invoke_id, template_id=template_id, phone_number=phone_number,
                                             content_var_dict=content_var_dict)
        return response.code
    except BceHttpClientError as e:
        return e.last_error.code
Esempio n. 2
0
class SmsSender(object):
    sms_client = SmsClient(conf.config)
    random_length = 6
    random_chars = '1234567890'
    invoke_id = conf.invoke_id
    template_id = conf.template_id

    def __init__(self, receiver, random_length=None, random_chars=None):
        self.receiver = receiver
        if random_length:
            self.random_length = random_length
        if random_chars:
            self.random_chars = random_chars

    @property
    def logger(self):
        logger = logging.getLogger('baidubce.services.sms.smsclient')
        fh = logging.FileHandler('sms_error.log')

        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        fh.setFormatter(formatter)
        logger.setLevel(logging.DEBUG)
        logger.addHandler(fh)
        return logger

    def random_str(self):
        strs = ''
        chars = self.random_chars
        length = len(chars) - 1
        random = Random()
        for i in range(self.random_length):
            strs += chars[random.randint(0, length)]
        return strs

    def send(self, type='register'):
        if not isinstance(type, str):
            return (400, '发送类型错误')
        try:
            ttl = cache.ttl(self.receiver + type + '_timeout')
            if ttl > 0:
                return (400, '请在一分钟后再试')
            deliver_str = self.random_str()
            content_var = {'code': deliver_str}
            response = self.sms_client.send_message_2(self.invoke_id, self.template_id, self.receiver, content_var)
            cache.set(self.receiver + type + '_timeout', 60, 60)
            cache.set(deliver_str + type + '_mobile', self.receiver, 900)

            return (int(response.code), '发送成功')

        except BceHttpClientError as e:
            if isinstance(e.last_error, BceServerError):
                self.logger.error('send message failed. Response %s, _msg: %s'
                                  % (e.last_error.status_code, e.last_error.message))
            else:
                self.logger.error('send message failed. Unknown exception: %s' % e)
            return (int(e.last_error.code), '系统繁忙')
Esempio n. 3
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写短信模板的名称和内容, 然后创建短信模板。
# 返回结果:
#   template_id -- 短信模板ID
try:
    invoke_id = ""  # 签名调用ID
    template_name = ""  # 短信模板的名称
    template_content = ""  # 短信模板的内容
    response = sms_client.create_template(template_name, template_content, invoke_id)
    print response.template_id
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('create template failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
    else:
Esempio n. 4
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 列出全部短信模板
# 返回结果中的template_list是用户自定义模板的列表, 其中每个元素是一个短信模板, 包括:
#   template_id -- 模板ID
#   name -- 模板名称
#   content -- 模板内容
#   status -- 模板状态(VALID/INVALID)
#   create_time -- 模板创建时间
#   update_time -- 模板更新时间
try:
    response = sms_client.get_template_list()

    for template in response.template_list:
        print template.template_id, template.name, template.content, template.status, template.create_time, \
              template.update_time
Esempio n. 5
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 查询单终端用户接收的短信信息。包括:
#   max_receive_per_phone_number_day -- 单日单终端用户的接收配额
#   received_today -- 单终端用户今日已接收的短信数量
try:
    phone_number = "要查询的终端用户的手机号码"
    response = sms_client.stat_receiver(phone_number)
    print response.max_receive_per_phone_number_day, response.received_today
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('stat receiver failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
    else:
        logger.error('stat receiver failed. Unknown exception: %s' % e)
Esempio n. 6
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写模板ID、模板参数值、接收者手机号码, 然后发送短信。
try:
    template_id = 'smsTpl:e7476122a1c24e37b3b0de19d04ae900'
    receivers = ['手机号码1', '手机号码2']
    content_var = {'code': '12345'}

    response = sms_client.send_message(template_id, receivers, content_var)
    print response.message_id
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('send message failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
    else:
        logger.error('send message failed. Unknown exception: %s' % e)
Esempio n. 7
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 查询单个短信模板的信息, 包括:
#   template_id -- 模板ID
#   name -- 模板名称
#   content -- 模板内容
#   status -- 模板状态(VALID/INVALID)
#   create_time -- 模板创建时间
#   update_time -- 模板更新时间
try:
    template_id = "短信模板ID"
    template = sms_client.get_template_detail(template_id)
    print template.template_id, template.name, template.content, template.status, template.create_time, \
          template.update_time
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
Esempio n. 8
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写短信模板的名称和内容, 然后创建短信模板。
# 返回结果:
#   template_id -- 短信模板ID
try:
    template_name = "短信模板名称"
    template_content = "短信模板内容"
    response = sms_client.create_template(template_name, template_content)
    print response.template_id
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('create template failed. Response %s, code: %s, msg: %s' %
                     (e.last_error.status_code, e.last_error.code,
                      e.last_error.message))
    else:
Esempio n. 9
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 查询单终端用户接收的短信信息。包括:
#   max_receive_per_phone_number_day -- 单日单终端用户的接收配额
#   received_today -- 单终端用户今日已接收的短信数量
try:
    phone_number = "要查询的终端用户的手机号码"
    response = sms_client.stat_receiver(phone_number)
    print response.max_receive_per_phone_number_day, response.received_today
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('stat receiver failed. Response %s, code: %s, msg: %s' %
                     (e.last_error.status_code, e.last_error.code,
                      e.last_error.message))
    else:
        logger.error('stat receiver failed. Unknown exception: %s' % e)
Esempio n. 10
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写模板ID、模板参数值、接收者手机号码, 然后发送短信。
try:
    phone_number = ""  # 接收者的手机号码,仅支持单个号码
    invoke_id = ""  # 签名调用ID
    template_id = 'smsTpl:e7476122a1c24e37b3b0de19d04ae900'
    content_vars = {"code": "12345"}

    response = sms_client.send_message_2(invoke_id, template_id, phone_number, content_vars)
    print response.message_id
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('send message failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
    else:
Esempio n. 11
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 列出全部短信模板
# 返回结果中的template_list是用户自定义模板的列表, 其中每个元素是一个短信模板, 包括:
#   template_id -- 模板ID
#   name -- 模板名称
#   content -- 模板内容
#   status -- 模板状态(VALID/INVALID)
#   create_time -- 模板创建时间
#   update_time -- 模板更新时间
try:
    response = sms_client.get_template_list()

    for template in response.template_list:
        print template.template_id, template.name, template.content, template.status, template.create_time, \
              template.update_time
Esempio n. 12
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写短信流水号, 然后查询它对应的短信详情。主要包括:
#   message_id -- 短信流水号
#   receiver -- 短信接收者
#   content -- 短信内容
#   send_time -- 短信的发送时间
try:
    message_id = ""  # 短信流水号
    response = sms_client.query_message_detail(message_id)

    print response.message_id, response.receiver, response.content, response.send_time
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('query message failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
Esempio n. 13
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 根据模板ID删除对应的短信模板
try:
    template_id = "短信模板ID"
    sms_client.delete_template(template_id)
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('delete template failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
    else:
        logger.error('delete template failed. Unknown exception: %s' % e)
Esempio n. 14
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写模板ID、模板参数值、接收者手机号码, 然后发送短信。
try:
    phone_number = ""  # 接收者的手机号码,仅支持单个号码
    invoke_id = ""  # 签名调用ID
    template_id = 'smsTpl:e7476122a1c24e37b3b0de19d04ae900'
    content_vars = {"code": "12345"}

    response = sms_client.send_message_2(invoke_id, template_id, phone_number,
                                         content_vars)
    print response.message_id
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('send message failed. Response %s, code: %s, msg: %s' %
                     (e.last_error.status_code, e.last_error.code,
Esempio n. 15
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 查询配额, 包括:
#   max_send_per_day -- 每天的发送配额
#   max_receive_per_phone_number_day -- 单日单终端用户的接收配额
#   sent_today -- 今日已发送的短信数量
try:
    quota = sms_client.query_quota()
    print quota.max_send_per_day, quota.max_receive_per_phone_number_day, quota.sent_today
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('query quota failed. Response %s, code: %s, msg: %s' % (
            e.last_error.status_code, e.last_error.code, e.last_error.message))
    else:
        logger.error('query quota failed. Unknown exception: %s' % e)
Esempio n. 16
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging

from baidubce.exception import BceServerError, BceHttpClientError
from baidubce.services.sms.sms_client import SmsClient

import sms_client_conf

# 设置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

# 创建SmsClient
sms_client = SmsClient(sms_client_conf.config)

# 填写模板ID、模板参数值、接收者手机号码, 然后发送短信。
try:
    template_id = 'smsTpl:e7476122a1c24e37b3b0de19d04ae900'
    receivers = ['手机号码1', '手机号码2']
    content_var = {'code': '12345'}

    response = sms_client.send_message(template_id, receivers, content_var)
    print response.message_id
except BceHttpClientError as e:
    if isinstance(e.last_error, BceServerError):
        logger.error('send message failed. Response %s, code: %s, msg: %s' %
                     (e.last_error.status_code, e.last_error.code,
                      e.last_error.message))
    else: