码迷,mamicode.com
首页 > 编程语言 > 详细

Python调用腾讯云短信接口

时间:2016-09-07 12:58:44      阅读:1442      评论:0      收藏:0      [点我收藏+]

标签:

现在通过后台系统自动发短信的需求越来越多,主要用于验证码的发送或者项目监控异常时的报警提醒等等,由于之前有用到部分所以记录一下供以后使用。但是现在腾讯云的短信功能还在内测阶段,所以还有很多功能仍在Awaiting.

首先当然是登录腾讯云首页https://www.qcloud.com/product/sms.html点击“立即选购”后会跳出以下的页面:

技术分享

 

 由于是内测,所以点击“服务开通指南”,就会让你写封邮件给腾讯,把你的情况按照模板一五一十地balabala给他,

技术分享

然后腾讯审核完之后终于可以使用这个功能了,好难得= =,进入正题

创建一个短信应用(首先得有腾讯云账号,并且有余额,因为发短信是要钱的),创建完后就可以得到这个应用的AppId和Appkey,在python脚本中会用到,同时还可以配置短信频率避免发的次数过多,毕竟4分钱一条嘛~

技术分享

然后再设置短信的签名以及模板,所谓签名就是类似于【腾讯科技】这种东西,但是注意这个并不能设置地特别高大上,因为要!审!核!,什么都要审核的,所以放

技术分享

弃吧骚年,签名申请号以后就是正文:模板部分,包括固定部分和变量部分,其中变量部分是用{}括起来,引用时换成自己的变量即可。

技术分享

待审核成功后就可以使用python脚本调用模板了,由于有单发短信的Demo代码https://www.qcloud.com/doc/product/382/5804

 直接下载即可,群发的其实用个数组执行循环就可以达到效果,代码如下:

#! /usr/bin/env python2
# encoding:utf-8
# python 2.7 测试通过
# python 3 更换适当的开发库就能使用,在此我们不额外提供

import httplib
import json
import hashlib
import random

#定义发送短信的类
class SmsSender:
    sdkappid = 0
    appkey = ""
    # API发送短信的文档
    url = "https://yun.tim.qq.com/v3/tlssmssvr/sendsms"
    
    #构造函数,把appid和appkey传入
    def __init__(self, sdkappid, appkey):
        self.sdkappid = sdkappid
        self.appkey = appkey
        
    #发短信的函数,传入国家码,手机号和内容
    def sendMsg(self, nationCode, phoneNumber, content):
        #接口定义的appkey+phoneNumber的md5()变量
        sig = hashlib.md5(self.appkey+phoneNumber).hexdigest()
        pkg = {
            "tel": {
                "nationcode": nationCode,
                "phone": phoneNumber
            },
            "type": "0",
            "msg": content,
            "sig": sig,
            "extend": "",
            "ext":"123"
        }
        
        con = None
        try:
            con = httplib.HTTPSConnection(yun.tim.qq.com, timeout=10)
            body = json.dumps(pkg)
            rnd = random.randint(100000, 999999)
            wholeUrl = %s?sdkappid=%d&random=%d % (self.url, self.sdkappid, rnd)
            con.request(POST, wholeUrl, body)
            response = con.getresponse()
            print response.status,response.reason
            data = response.read()
            print data
        except Exception,e:
            print e
        finally:
            if(con):
                con.close()

if __name__ == "__main__":
    # 开放者实际发送短信时请使用申请的 sdkappid 和 appkey
    #定义3个变量
    wxName=test1
    wxPhone=test2
    wxComment=test3
    #创建对象
    sender = SmsSender(你的appid, "你的appkey")
    #要发送的手机号码
    phones = ["13833338888","13888883333"]
    for phone in phones:
        sender.sendMsg("86",phone,"昵称:"+wxName+",电话:"+wxPhone+",评论:"+wxComment) 

其中比较蛋疼的就是模板里的符号问题,建议最好都用中文或者英文,不然可能匹配不上,OK至于其他功能以后等完全推出了再慢慢使用吧。

Python调用腾讯云短信接口

标签:

原文地址:http://www.cnblogs.com/martianShu/p/5847289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!