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
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), '系统繁忙')
#! /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:
#! /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
#! /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)
#! /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)
#! /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):
#! /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:
#! /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)
#! /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:
#! /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))
#! /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)
#! /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,
#! /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)
#! /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: