Ronglianクラウド通信メッセージングプラットフォーム
アプリケーションを作成するためのマネジメントアプリケーション管理モジュール>> >> >>編集アプリケーション>> SMSの確認コードをチェックします
インストール要求モジュール
リクエストをインストールするPIP
リクエストパラメータ
POST:https://app.cloopen.com:8883/2013-12-26/Accounts/{accountSid}/SMS/TemplateSMS?sig={SigParameter}
要求ヘッダー
パラメータ | タイプ | 必要とされます | パラメータ説明 |
---|---|---|---|
accountSid | 弦 | 必須 | アカウントID |
SigParameter | 弦 | 必須 | 署名[アカウントトークントークン+ ID +時間( 'YMDHMS')MD5値] |
リクエストヘッダフィールド
パラメータ | タイプ | 必要とされます | パラメータ説明 |
---|---|---|---|
受け入れます | 弦 | 必須 | クライアントは、応答データ形式を受け取ります |
コンテンツタイプ | 弦 | 必須 | タイプ |
コンテンツの長さ | 弦 | 必須 | |
認定 | 弦 | 必須 | パラメータをキャリー |
Requestパケットボディ
パラメータ | タイプ | 必要とされます | パラメータ説明 |
---|---|---|---|
に | 弦 | 必須 | "電話1、電話番号2、電話番号3" |
APPID | 弦 | 必須 | アプリケーションID |
れるtemplateId | 弦 | 必須 | |
日付 | 弦 | オプショナル | 何のテンプレート変数が存在しない場合は、コンテンツデータ層ノードは、このパラメータが渡されていません |
データ | 弦 | オプショナル | テンプレート{数}を置き換えるコンテンツデータ |
顧客の要求は、SMSの成功を送信するだけという応答では、このステップに対応して、チャンネルが正常にSMSメッセージを送信されたことを示すものではありません。(ステータスコード)
パラメータ | タイプ | 必要とされます | パラメータ説明 |
---|---|---|---|
statusCode | 弦 | 必須 | 000000レンジング要求ステータスコード、(成功しました) |
smsMessageSid | 弦 | 必須 | SMS一意識別子 |
dateCreated | 弦 | 必須 | 作成されたSMS |
ブロック
shortMsg.py
1 import hashlib, base64, requests, json 2 from datetime import datetime 3 4 class YunTongXin: 5 __base_url = 'https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig={}' 6 7 # 初始化代码 8 def __init__(self, accid='', appid='', appkey='', temid='', temp_motice='45分钟'): 9 self.accid = accid 10 self.appid = appid 11 self.appkey = appkey 12 self.temid = temid 13 self.temp_motice = temp_motice 14 15 # md5编码 16 def __md5(self, raw): 17 md5 = hashlib.md5() 18 md5.update(raw.encode('utf-8')) 19 return md5.hexdigest() 20 21 # 获取格式化时间 22 def __get_format_time(self): 23 return str(datetime.now().strftime('%Y%m%d%H%M%S')) 24 25 # base64编码 26 def __get_base64_code(self, raw): 27 st = raw.encode() 28 return base64.b64encode(st).decode('utf-8') 29 30 # 请求包头 31 def __request_url(self, stamp): 32 sig = self.__md5(self.accid + self.appkey + stamp).upper() # 生成签名 33 return self.__base_url.format(self.accid, sig) # https 请求地址 34 35 # 请求包头字段 36 def __request_header(self, stamp): 37 authorization = self.__get_base64_code(self.accid + ':' + stamp) 38 return { 39 'Authorization': authorization, 'Accept': 'application/json;', 40 'Content-Type': 'application/json;charset=utf-8;'} 41 42 # 请求包体 43 def __request_body(self, phone, code): 44 return { 45 "to": ','.join(phone), 46 "appId": self.appid, 47 "templateId": self.temid, 48 "datas": [code, self.temp_motice] 49 } 50 51 # 返回结构化结果 52 def __ajaxReturn(self, code=92000, msg='', data=[]): 53 dict = {"code": code, "msg": msg, "data": data} 54 return json.dumps(dict) 55 56 # 发送短信 57 def send(self, phone=[], code=''): 58 stamp = self.__get_format_time() # 获取当前格式化时间 59 url = self.__request_url(stamp) # 请求包地址 60 headers = self.__request_header(stamp) # 请求包头字段 61 data = self.__request_body(phone, code) 62 obj = requests.post(url, headers=headers, json=data) 63 dict = json.loads(obj.text) 64 if dict.get('statusCode') == '000000': 65 return self.__ajaxReturn(msg="发送成功", data={}) 66 else: 67 return self.__ajaxReturn(code=92001, msg='发送失败', data={"code": dict.get('statusCode')})
调用
1 from shortMsg import YunTongXin 2 accid = '' # 账号id 3 appid = '' # 应用id 4 appkey = 'ae007ba417e24833acc709d8e2acdb65' # key 5 temid = '1' # 默认模版 6 temp_motice = '30分钟' # 参数 7 phone = ['电话1','电话2'] # 电话号码 8 code = '' # 短信验证码 9 # 实例化 10 yun = YunTongXin(accid=accid,appid=appid,appkey=appkey,temid=temid,temp_motice=temp_motice) 11 # 发送短信 12 yun.send(phone, code)