def do_delete(self, region_id, instance_id): client = AcsClient(self.aliyun_token['id'], self.aliyun_token['secret'], region_id) # check status first describeInstanceAttributeRequest = DescribeInstanceAttributeRequest.DescribeInstanceAttributeRequest() describeInstanceAttributeRequest.set_InstanceId(instance_id) describeInstanceAttributeRequest.set_accept_format('json') resp = json_decode(client.do_action(describeInstanceAttributeRequest)) result = {} # check if exist if 'Code' in resp.keys() and resp['Code'] == 'InvalidInstanceId.NotFound': result['text'] = 'delete %s %s failed, %s' % (region_id, instance_id, resp['Code']) else: if resp['Status'] != 'Stopped': result['text'] = 'delete %s %s failed, stop instance first' % (region_id, instance_id) result['attachments'] = [{"title": "%s" % resp['InstanceId'], "text": "%s" % resp['Status'], "color": "%s" % self.status_color(resp['Status'])}] else: deleteInstanceRequest = DeleteInstanceRequest.DeleteInstanceRequest() deleteInstanceRequest.set_InstanceId(instance_id) deleteInstanceRequest.set_accept_format('json') client.do_action(deleteInstanceRequest) result['text'] = 'deleting instance %s %s' % (region_id, instance_id) return result
class Client: def __init__(self,filepath,ip): self.filepath = filepath with open(filepath, 'r') as f: self.config = json.load(f) self.clt = AcsClient(self.config.get('Key'), self.config.get('Secret'), self.config.get('Region')) if not self.config.get('RecordID'): self.GetRecordID() self.config['IP']=ip self.UpdateRecord() def GetRecordID(self): id_r = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest() id_r.set_DomainName(self.config.get('Domain')) id_r.set_RRKeyWord(self.config.get('RR')) id_re = self.clt.do_action(id_r) id_xml = fromstring(id_re.decode()) self.config['RecordID'] = id_xml.find('DomainRecords/Record/RecordId').text with open(self.filepath, "w") as f: f.write(json.dumps(self.config)) def UpdateRecord(self): ur_r = UpdateDomainRecordRequest.UpdateDomainRecordRequest() ur_r.set_RR(self.config['RR']) ur_r.set_RecordId(self.config['RecordID']) ur_r.set_Type('A') ur_r.set_Value(self.config['IP']) ur_r.set_Line("default") ur_re = self.clt.do_action(ur_r) Log(ur_re)
def get_phone_code(*, phone: int, phone_code: str) -> tuple: """ 获取短信验证码 phone: 手机号 """ AccessKey = settings.PHONE_ACCESSKEY AccessSecret = settings.PHONE_ACCESSSECRET code = "cn-hangzhou" try: client = AcsClient(AccessKey, AccessSecret, code, phone) request = CommonRequest() request.set_accept_format("json") request.set_domain("dysmsapi.aliyuncs.com") request.set_method("POST") request.set_protocol_type("https") # https | http request.set_version("2017-05-25") request.set_action_name("SendSms") request.add_query_param("RegionId", "cn-hangzhou") request.add_query_param("PhoneNumbers", phone) request.add_query_param("SignName", settings.PHONE_SIGNNAME) request.add_query_param("TemplateCode", settings.PHONE_TEMPLATECODE) json_data = json.dumps({"code": phone_code}) request.add_query_param("TemplateParam", json_data) client.do_action(request) except Exception as e: message = f"向手机 {phone} 发送验证码失败" logger.error(message, e) return None, message phone_code_time = settings.PHONE_CODE_EXPIRE_SECONDS // 60 message = f"验证码已发送, {phone_code_time}分钟之内有效" return phone_code, message
def do_create(self, region_id, template_name, instance_name): client = AcsClient(self.aliyun_token['id'], self.aliyun_token['secret'], region_id) # Step 1, run instance from launch template runInstancesRequest = RunInstancesRequest.RunInstancesRequest() runInstancesRequest.set_LaunchTemplateName(template_name) runInstancesRequest.set_accept_format('json') runInstancesRequest.set_InstanceName(instance_name) resp = json_decode(client.do_action(runInstancesRequest)) instanceId = resp['InstanceIdSets']['InstanceIdSet'][0] # Step 2, allocate eip allocateEipAddressRequest = AllocateEipAddressRequest.AllocateEipAddressRequest() allocateEipAddressRequest.set_InternetChargeType('PayByTraffic') #allocateEipAddressRequest.set_InstanceChargeType('PostPaid') allocateEipAddressRequest.set_accept_format('json') resp = json_decode(client.do_action(allocateEipAddressRequest)) ipAddress = resp['EipAddress'] allocationId = resp['AllocationId'] time.sleep(30) # Step 3, associate eip associateEipAddressRequest = AssociateEipAddressRequest.AssociateEipAddressRequest() associateEipAddressRequest.set_AllocationId(allocationId) associateEipAddressRequest.set_InstanceId(instanceId) associateEipAddressRequest.set_accept_format('json') client.do_action(associateEipAddressRequest)
class AliyunService(): def __init__(self, key, secret): self.key = key self.secret = secret self.client = AcsClient( self.key, self.secret, 'cn-beijing', ) self.request = CommonRequest() self.request.set_accept_format('json') self.request.set_domain('ecs.aliyuncs.com') self.request.set_method('POST') self.request.set_version('2014-05-26') def get_all_region(self): try: self.request.set_action_name('DescribeRegions') return self.client.do_action(self.request) # python2: print(response) # print(str(response, encoding = 'utf-8')) except: pass def get_allhost(self, region="cn-beijing", PageNumber=1): try: self.request.set_action_name('DescribeInstances') self.request.add_query_param('RegionId', region) self.request.add_query_param('PageSize', 100) self.request.add_query_param('PageNumber', PageNumber) return self.client.do_action(self.request) except: pass
def json_to_js(server_name): print(server_name) instance_id = '' if 'saasapi' in server_name: instance_id = 'i-bp1cxjakqgruiklj6r42' if 'openapi' in server_name: instance_id = 'i-bp1hqj94tqd6rehk40wa' instance_str = {"instanceId": instance_id} end_time = time.time() + 15 start_time = end_time - 60 * 10 - 15 end_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time)) start_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time)) client = AcsClient("LTAIS2gayXtUpGes", "2dz2N0LVTKA8cvP38YhKJf44N77nq3", "cn-hangzhou") request = CommonRequest() request.set_accept_format('json') request.set_domain('metrics.aliyuncs.com') request.set_method('POST') request.set_version('2018-03-08') request.set_action_name('QueryMetricData') request.add_query_param('Metric', 'cpu_total') request.add_query_param('Project', 'acs_ecs_dashboard') request.add_query_param('StartTime', start_time) request.add_query_param('EndTime', end_time) request.add_query_param('Dimensions', str(instance_str)) time.sleep(30) response = client.do_action(request) cpu_data = json.loads(response.decode('utf-8')).get('Datapoints') cpu_data = json.loads(cpu_data) request.add_query_param('Metric', 'memory_usedutilization') response = client.do_action(request) memory_data = json.loads(response.decode('utf-8')).get('Datapoints') memory_data = json.loads(memory_data) times = [i.get('timestamp') for i in cpu_data] times = [ time.strftime('%H:%M:%S', time.localtime(i / 1000)) for i in times ] cpu_list = [i.get('Average') for i in cpu_data] memory_list = [i.get('Average') for i in memory_data] js_str = """ xAxis: { type: 'category', boundaryGap: false, data: %s}, yAxis: {type: 'value'}, series: [{name:'CPU使用率', type:'line', data:%s}, {name:'内存使用率', type:'line', data:%s}, """ % (times, cpu_list, memory_list) return js_str
def smsVerifySend(code,nowTime,baseDate): if not constant.smsSwitch: return if not timeBetween() and not constant.smsSwitch: print("时间不在范围内或者开关关闭,无需发短信") return phoneNumbers = constant.phoneNumbers; client = AcsClient(constant.accessKeyId, constant.accessKeySecret, 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('SignName', constant.signName) request.add_query_param('TemplateCode', constant.smsTemplateCode) request.add_query_param('TemplateParam', "{\"code\":\""+code+"\"}") cursor.execute("select * from hold_stock where stock_code='%s' and hold_flag=1" % (code)) fetchFlag = cursor.fetchone() if not fetchFlag: print("不在范围内") return if len(code)>6 and len(code)<20 : myNumberArray = constant.myNumber; #没三分钟发一次短信 if int(nowTime[14:16])%3 == 2: for number in myNumberArray.split(','): request.add_query_param('PhoneNumbers', number) response = client.do_action(request) print(response) return for number in phoneNumbers.split(','): request.add_query_param('PhoneNumbers', number) cursor.execute("SELECT * FROM sms_send_record where stock_code='%s' and phone_number='%s' and DATE(send_date)='%s'" % (code,number,baseDate)) flag = cursor.fetchone() #这里设置可以一直发 flag=False if flag: pass else: response = client.do_action(request) cursor.execute("select stock_name from all_stock where stock_code='%s' " % (code)) stockName = cursor.fetchone()[0] #stockName='weizhi' cursor.execute("INSERT INTO sms_send_record (stock_code,stock_name, phone_number, send_date) VALUES ('%s','%s', '%s', '%s')" % (code,stockName,number,nowTime)) db.commit() print(str(response, encoding = 'utf-8'))
def getAliyunEcsIp(cate='ip',account='',passkey='',endpoint=''): client = AcsClient(account, passkey, endpoint) request = CommonRequest() request.set_accept_format('json') request.set_domain('ecs.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2014-05-26') request.set_action_name('DescribeInstances') # request.add_query_param('RegionId', 'cn-hangzhou') request.add_query_param('PageSize', '100') # 返回数量 request.add_query_param('Status', 'Running') # ECS状态:运行中 response = client.do_action(request) res = json.loads(str(response,encoding='utf-8')) ipArr = [] ips = {} for i in res['Instances']['Instance']: # ECS的ip有两种: 公网ip 和 弹性ip if len(i['EipAddress']['IpAddress']) !=0: ipArr.append(i['EipAddress']['IpAddress']) ips[ i['InstanceId'] ] = i['EipAddress']['IpAddress'] if len(i['PublicIpAddress']['IpAddress']) !=0 : ipArr.append(i['PublicIpAddress']['IpAddress'][0]) ips[ i['InstanceId'] ] = i['PublicIpAddress']['IpAddress'][0] if cate=='ip': return ipArr else: return ips
class PhoneVerify: def __init__(self, key_id, secret): self.client = AcsClient(key_id, secret, "cn-hangzhou") def send_code(self, phone_number): request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('QuerySendDetails') verify_code = self.make_verify_code() welcome_str = "欢迎使用柳丁教育系统电话验证,您这次的验证码为: {}".format(verify_code) request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumber', phone_number) request.add_query_param('SendDate', welcome_str) request.add_query_param('PageSize', "1") request.add_query_param('CurrentPage', "1") response = self.client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return verify_code def make_verify_code(self): return str(random.randint(0, 999999)).zfill(6)
def do_monitor_5min(self, region_id, image_id): client = AcsClient(self.aliyun_token['id'], self.aliyun_token['secret'], region_id) describeInstanceMonitorDataRequest = DescribeInstanceMonitorDataRequest.DescribeInstanceMonitorDataRequest() describeInstanceMonitorDataRequest.set_InstanceId(image_id) describeInstanceMonitorDataRequest.set_accept_format('json') startTime = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(time.time() - 300)) endTime = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) describeInstanceMonitorDataRequest.set_StartTime(startTime) describeInstanceMonitorDataRequest.set_EndTime(endTime) describeInstanceMonitorDataRequest.set_accept_format('json') resp = json_decode(client.do_action(describeInstanceMonitorDataRequest)) result = {} result['text'] = 'monitor %s %s from %s to %s' % (region_id, image_id, startTime, endTime) result['attachments'] = [] for i in sorted(resp['MonitorData']['InstanceMonitorData'], key=lambda k: k.get('TimeStamp', 0)): iopsread = '-' try: iopsread = i['IOPSRead'] iopswrite = i['IOPSWrite'] bpsread = i['BPSRead'] bpswrite = i['BPSWrite'] internetTX = i['InternetTX'] internetRX = i['InternetRX'] intranetTX = i['IntranetTX'] intranetRX = i['IntranetRX'] except KeyError: pass result['attachments'].append({"title": "%s" % i['TimeStamp'], "text": "IOPSRead: %s\tIOPSWrite: %s\nBPSRead: %s\tBPSWrite: %s\nInternetTX: %s\tInternetRX: %s\nIntranetTX: %s\tIntranetRX: %s\n" % (iopsread, iopswrite, bpsread, bpswrite, internetTX, internetRX, intranetTX, intranetRX)}) return result
def sendmessage(ticketmseeage: str): ''' 短信通知,调用阿里云接口 ''' message_conf = _get_yaml() is_email = message_conf["message_conf"]["is_massage"] if is_email: accessKeyId = message_conf["message_conf"]["aliyunkeyid"] aliyunsecret = message_conf["message_conf"]["aliyunsecret"] phonenumbers = message_conf["message_conf"]["phone"] trcket = '{"code":"' + ticketmseeage + '"}' client = AcsClient(accessKeyId, aliyunsecret, 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', 'cn-hangzhou') request.add_query_param('PhoneNumbers', phonenumbers) request.add_query_param('SignName', '抢票小助手') request.add_query_param('TemplateCode', 'SMS_164266405') request.add_query_param('TemplateParam', trcket) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) try: pass except Exception as identifier: print(u"短信发送失败{}".format(identifier))
def send_msg_to_phone(phone_num, verify_number): """ 将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便 :param phone_num: :param content: :return: """ client = AcsClient('短信密钥', '短信密钥', 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone_num) request.add_query_param('SignName', "新经资讯网页") request.add_query_param('TemplateCode', "SMS_xxxxxxx") request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % verify_number) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8'))
def send_sms(phone_numbers, code): ''' 发送验证码 :param phone_numbers: 手机号 :param code: 验证码 :return response: ''' client = AcsClient('', '', '') request = CommonRequest() request.set_accept_format('json') request.set_domain('') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('', "") # 手机号码,多个号码用英文的逗号分隔开 # 例如:phone_numbers = '17612835052,15889923535' request.add_query_param('PhoneNumbers', phone_numbers) request.add_query_param('SignName', "农村社区管理平台") request.add_query_param('', "") # 验证码, json 格式 template_param = "{'code': %s }" % code request.add_query_param('TemplateParam', template_param) response = client.do_action(request) return response
def send_sms(phone_numbers, template_code, sign_name, sms_code): """ 发送短信 :param phone_numbers: :param template_code: :param sign_name: :param sms_code: :return: """ client = AcsClient(config.SMS_ACCESS_KEY_ID, config.SMS_ACCESS_KEY_SECRET, REGION) request = CommonRequest() request.set_accept_format('json') request.set_domain(DOMAIN) request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', REGION) request.add_query_param('PhoneNumbers', "{}".format(phone_numbers)) request.add_query_param('SignName', "{}".format(sign_name)) request.add_query_param('TemplateCode', "{}".format(template_code)) # request.add_query_param('TemplateParam', "{\"code\":\"" + sms_code + "\"}") request.add_query_param('TemplateParam', json.dumps({'code': sms_code})) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return response
def send_message(mobile, code): # client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') client = AcsClient('LTAIjTtYFp6YT8Hi', 'SnBhv9lAno1S1unOYNzhIkD5YA19cf', 'cn-hangzhou') # 改前两个参数 request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', mobile) request.add_query_param('SignName', "豆博士工作室") # 改这里 request.add_query_param('TemplateCode', "SMS_151768608") # 改这里 code_msg = "{\"code\": " + "\"" + code + "\"}" request.add_query_param('TemplateParam', code_msg) response = client.do_action(request) response = json.loads(response) if response['Code'] == "OK": return True else: return False
def send_sms(phone, code): client = AcsClient('LTAI4Fuw8oBKKkQwQV8kjhWB', 'eKyJasjVGG0pykNHm3hNf81RzmRKqW', 'cn-hangzhou') #phone = '17600950805' #aa= '222222' code = "{'code':%s}" % (code) request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', "玉仙人") request.add_query_param('TemplateCode', "SMS_178980375") request.add_query_param('TemplateParam', code) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return str(response, encoding='utf-8')
def message_code(reuqest): if reuqest.method == 'POST': phone = reuqest.POST.get('phone') logger.info('请求验证码的用户:{}'.format(phone)) # 在发送验证码之前需要检查验证码有效期,如果在有效期内不直接发送验证码 cache_phone_message = cache.get('phone_message:' + phone) if cache_phone_message: logger.info('redis服务器下该{}用户的验证码为:{},还未过有效期'.format( phone, cache_phone_message)) # 已经获取到缓存的手机号了 # 准备给前端返回的数据信息 return JsonResponse({'status': 405, 'msg': '验证码有效期内请勿重复申请'}) # 生成6位随机验证码(string) # 先生成6位随机数列表:random.sample([x for x in string.ascii_letters + string.digits],6 # 通过join将列表拼接字符串 # kUEeBr # print("".join(random.sample([x for x in string.ascii_letters + string.digits], 6))) # 生成6位随机数,准备填充到短信验证码模版的code表中 six_num = "".join(map(lambda x: random.choice(string.digits), range(6))) '''-------------------------------阿里的短信服务器调用代码-----------------------------------------''' client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', SignName) request.add_query_param('TemplateCode', TemplateCode) request.add_query_param('TemplateParam', {'code': six_num}) response_message = client.do_action(request) logger.info('当前手机号:{},验证码:{},发送状态:{}'.format( phone, six_num, str(response_message, encoding='utf-8'))) # python2: print(response) response_message = json.loads(str(response_message, encoding='utf-8')) logger.info('短信服务器返回的消息:{}'.format(response_message)) '''-------------------------------阿里的短信服务器调用代码-----------------------------------------''' if response_message['Code'] == 'OK': # 如果验证码发送成功,那需要把当前验证码加入到缓存中进行存储,设定短信10分钟内有效 logger.info('验证码发送成功,有效期10分钟') cache.set('phone_message:' + phone, six_num, 60 * 10) # 准备给前端返回的数据信息 return JsonResponse({'status': 200, 'msg': '验证码发送成功'}) else: # 准备给前端返回的数据信息 return JsonResponse({ 'status': 404, 'msg': str(response_message['Message']) })
def sent_sms_with_phone(phone_number): ans = {} # client = AcsClient('LTAICNrMCIXkVv7O', 'XQGp8NBdcs7OBtgY1TrvrTpbZwPUdp', 'default') # 短信验证码,@maglith 友情提供 client = AcsClient('LTAIvOKVFOootzEk', 'psEqWjHnX3B4CCxA6X1g4XiFMCz5BC', 'default') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('PhoneNumbers', str(phone_number)) request.add_query_param('TemplateCode', "SMS_171113335") request.add_query_param('SignName', "实训管理系统") # 获取随机验证码 code = str(get_random_number_str(6)) request.add_query_param('TemplateParam', "{\"code\": \"%s\"}" % code) response = client.do_action(request) ans["code"] = code ans["data"] = str(response, encoding='utf-8') return ans
def send_msg_to_phone(phone_num, content): """ 将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便 :param phone_num: :param content: :return: """ client = AcsClient('LTAI4GFkdB5KgW8K98eAd7a3', 'cBVs8OKBjbley1VkqhUgx4c7yu48Z4', 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone_num) request.add_query_param('SignName', "小马哥") request.add_query_param('TemplateCode', "SMS_204296280") request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % content) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8'))
def put(self, request, *args, **kwargs): # !/usr/bin/env python # coding=utf-8 print(request) phone = request.data['phone'] client = AcsClient('LTAI4G4zWvN2AeVYdDvxhivu', 'BUtSRanKYPgrDtLacOpkqj5HQi2OGO', 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', "识别管理程序") request.add_query_param('TemplateCode', "SMS_190281003") seeds = "1234567890" random_str = [] for i in range(4): random_str.append(random.choice(seeds)) round = "".join(random_str) request.add_query_param('TemplateParam', {"code": round}) a = UserPro.objects.get(phone=phone) a.sms = round a.save() response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return HttpResponse(response)
def send_sms(phone, code): client = AcsClient('LTAI4FppavJLWqYjFtZwU1Pf', 'oP3BxfEWb0t2rNqykdhay9EQWsAv6s', 'cn-hangzhou') code = "{'code':%s}" % (code) print('我是codes:', code) request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', "禹王村") request.add_query_param('TemplateCode', "SMS_181556017") # request.add_query_param('TemplateParam', {'code': '123456'}) request.add_query_param('TemplateParam', code) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return str(response, encoding='utf-8')
def UpdateDomainRecord(accessKeyId,accessSecret,NewIP): client = AcsClient(accessKeyId,accessSecret, 'default') request = CommonRequest() request.set_accept_format('json') request.set_domain('alidns.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2015-01-09') request.set_action_name('UpdateDomainRecord') request.add_query_param('RR', 'WWW') request.add_query_param('Value', NewIP) request.add_query_param('Type', 'A') request.add_query_param('RecordId', '') response = str(client.do_action(request), encoding = 'utf-8') msg=json.loads(response) if 'Message' in msg: msg = msg['Message'] content = stamp_to_time() + ' ' + msg + '\n' WriteContent('log.conf', content) else : content = stamp_to_time() + ' ' + 'the ip of demain liuyaoze.cn has change to :'+NewIP + '\n' WriteContent('log.conf', content)
def send_sms(phone, code): client = AcsClient('LTAI4Fog9VDu4HPx1eZ64K6W', 'cf2fqRQn7Pm4vQbR9DGGe8Xr4nBqeA', 'cn-hangzhou') # phone = '17600950805' # aa= '222222' code = "{'code':%s}" % (code) request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', 'cn-hangzhou') request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', '北网人工智能') request.add_query_param('TemplateCode', 'SMS_181545706') request.add_query_param('TemplateParam', code) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return str(response, encoding='utf-8')
class Aliyun: def __init__(self): appid = settings.SMS.get('appid', None) secret = settings.SMS.get('secret', None) self.client = AcsClient(appid, secret, 'default') def send_sms(self, mobile, sign, template, data=None): """ 发送短信 mobile: 手机号码 sign: 短信签名 template: 短信模板 data: 短信内容 """ request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "default") request.add_query_param('PhoneNumbers', mobile) request.add_query_param('SignName', sign) request.add_query_param('TemplateCode', template) #request.add_query_param('TemplateParam', '{"code":"%s"}'%content) response = self.client.do_action(request) return response
def send_sms(phone, code): # !/usr/bin/env python # coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest client = AcsClient('LTAIznxYom8fTE24', '4eTEzXNBG3VW8iRfPZ1M8CDusiXDWU', 'cn-hangzhou') code = "{'code':'%s'}" % (code) # print(code) request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', "关家实践组") request.add_query_param('TemplateCode', "SMS_172205443") request.add_query_param('TemplateParam', code) response = client.do_action(request) # python2: print(response) # print(str(response, encoding='utf-8')) return str(response, encoding='utf-8')
def send_sms(phone, code): client = AcsClient('LTAIEx3Gbdbceg2C', 'MsCoWUm3x2iXaIcvtqhQLi9yj6nHxX', 'cn-hangzhou') # phone = '17600950805' # aa= '222222' code = "{'code':%s}" % (code) request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', 'cn-hangzhou') request.add_query_param('PhoneNumbers', phone) request.add_query_param('SignName', '北网实训组') request.add_query_param('TemplateCode', 'SMS_165745016') request.add_query_param('TemplateParam', code) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8')) return str(response, encoding='utf-8')
def send_msg_to_phone(phone_num, content): """ 将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便 :param phone_num: :param content: :return: """ client = AcsClient('LTAI4GJcCBqAEs63nNVNsJ63', 'hZXTnGJvkT54E6bqYH4jwAJO5Tc9Mx', 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', phone_num) request.add_query_param('SignName', "dong4716138") request.add_query_param('TemplateCode', "SMS_167532197") request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % content) response = client.do_action(request) # python2: print(response) print(str(response, encoding='utf-8'))
def dataworks_api_create_adhoc_dag(accesskey_id, accesskey_secret, region_id, projectname, flowname, bizdate='2018-07-25 00:00:00'): client = AcsClient(accesskey_id, accesskey_secret, region_id) request = CommonRequest() request.set_accept_format('json') request.set_domain('dataworks.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2018-06-01') request.set_action_name('CreateManualDag') request.add_query_param('ProjectName', projectname) request.add_query_param('FlowName', flowname) request.add_query_param('Bizdate', bizdate) response = client.do_action(request) #pprint(response) js = json.loads(response) status = 'Failed and unknown' dag_id = '0' if ('ReturnCode' in js): if (js['ReturnCode'] == '600011'): status = 'Failed and Bizdate should be in [2019-03-20 00:00:00 format]' if (js['ReturnCode'] == '0') and ('ReturnValue' in js): status = 'Succeed' dag_id = js['ReturnValue'] return js, status, dag_id
def BeginSend(PhoneNum, AccessKeyId, AccessSecret, SignName, TemplateCode): client = AcsClient(AccessKeyId, AccessSecret, 'cn-hangzhou') # 生成验证码 authCode = str(random.randint(1000, (10**VerificationLen - 1))) dict = {'code': authCode} request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', PhoneNum) request.add_query_param('SignName', SignName) request.add_query_param('TemplateCode', TemplateCode) # request.add_query_param('TemplateParam', "{'code':'5648'}") request.add_query_param('TemplateParam', str(dict)) # 请求 response = client.do_action(request) cjson = json.loads(str(response, 'utf-8')) cjson['authCode'] = authCode print(json.dumps(cjson)) return cjson
def post(self, request, *args, **kwargs): data = request.data Phone = data['Phone'] code = get_random_code(len=6) body = {"code": code} aliyun_msg = '' from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest client = AcsClient('LTAINoeFiTtb5Ldh', 'FxOZ9pfmLB9LwIBABsauu8Md8dJjn7', 'cn-hangzhou') #短信子账户 try: request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('http') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', Phone) request.add_query_param('SignName', "DeepDraw深绘智能") request.add_query_param('TemplateCode', "SMS_170346491") request.add_query_param('TemplateParam', str(body)) response = client.do_action(request) aliyun_msg = str(response, encoding='utf-8') test_obj = UserInfo.objects.filter(user_name=data['Phone']).first() if not test_obj: obj = UserInfo.objects.create( user_name=Phone, user_type=1, user_detil='手机注册', password=code, ) else: UserInfo.objects.filter(user_name=Phone).update( user_name=Phone, password=code) obj = UserInfo.objects.filter(user_name=Phone).first() ret = { 'code': 1001, 'msg': '获取验证码成功', #'random_code':code, #调试时返回 'user_id': obj.id, 'aliyun_msg': aliyun_msg, } except: ret = { 'code': 1000, 'msg': '获取验证码失败', 'aliyun_msg': aliyun_msg, } return JsonResponse(ret)
def handler(event, context): logger = logging.getLogger() logger.info('hello world') creds = context.credentials sts_token_credential = StsTokenCredential(creds.accessKeyId, creds.accessKeySecret, creds.securityToken) #logger.info('creds.accessKeyId '+creds.accessKeyId) #logger.info('creds.accessKeySecret '+creds.accessKeySecret) #logger.info('creds.securityToken '+creds.securityToken) client = AcsClient(credential=sts_token_credential) #Regions in which vms should be decribed and checked if they belong to default SG regions = ['cn-beijing', 'cn-shanghai', 'ap-southeast-1'] #regions = ['cn-shanghai'] toMerge = [] for eachReg in regions: request = CommonRequest() request.set_accept_format('json') request.set_domain('ecs.aliyuncs.com') request.set_method('GET') request.set_protocol_type('https') request.set_version('2014-05-26') request.set_action_name('DescribeInstances') request.add_query_param('RegionId', eachReg) try: response = client.do_action(request) except ServerException as e: print(e.get_http_status(), e.get_error_code(), e.get_error_msg()) raise e vms = str(response, encoding='utf-8') vmsJson = json.loads(vms) instances = vmsJson['Instances']['Instance'] #instancesJson = json.loads(instances) for instance in instances: zoneid = instance['ZoneId'] instanceId = instance['InstanceId'] instanceName = instance['InstanceName'] #logger.info('zoneid '+str(zoneid)) logger.info('instanceName ' + str(instanceName) + str(' from ') + str(eachReg)) #logger.info('tempInstances '+str(tempInstances)) #toMerge.extend(tempInstances) #instances=json.dumps(toMerge) return 'hello world'