コード例 #1
0
def DDNS(ip):
    # 更改www解析
    client = AcsClient('LTAIc8YWfR2ROU2t', '7MXSBNpJxqqJHfLGmEUYbTZukswZEv',
                       'cn-hangzhou')
    request = CommonRequest()
    recordId = "your recordId"
    request.set_domain('alidns.aliyuncs.com')
    request.set_version('2015-01-09')
    request.set_action_name('UpdateDomainRecord')
    request.add_query_param('RecordId', recordId)
    request.add_query_param('RR', 'www')
    request.add_query_param('Type', 'A')
    request.add_query_param('Value', ip)
    client.do_action_with_exception(request)

    # 更改@解析
    request = CommonRequest()
    recordId = "17833809750340608"
    request.set_domain('alidns.aliyuncs.com')
    request.set_version('2015-01-09')
    request.set_action_name('UpdateDomainRecord')
    request.add_query_param('RecordId', recordId)
    request.add_query_param('RR', '@')
    request.add_query_param('Type', 'A')
    request.add_query_param('Value', ip)
    response = client.do_action_with_exception(request)
    return response
コード例 #2
0
ファイル: daily_check.py プロジェクト: Vickey-Wu/scripts
def rds_redis(AccessKeyId, AccessKeySecret, RegionId):
    # 获取服务器系统3天后日期
    today = datetime.date.today()
    tomorrow = today + datetime.timedelta(days=3)
    day_sys, month_sys, year_sys = tomorrow.strftime('%d'), tomorrow.strftime(
        '%m'), tomorrow.strftime('%Y')
    # rds实例存放列表
    rds_list = []
    for reg in RegionId:
        client = AcsClient(AccessKeyId, AccessKeySecret, reg)
        # 查询实例详情的默认参数设置
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('r-kvstore.aliyuncs.com')
        request.set_method('POST')
        request.set_version('2015-01-01')
        request.set_action_name('DescribeInstances')
        # 自定义添加查询参数
        request.add_query_param('RegionId', reg)
        request.add_query_param('PageSize', '50')
        # 发送请求
        response = client.do_action_with_exception(request)
        instance = json.loads(response)["Instances"]["KVStoreInstance"]
        for ins in instance:
            # 查询实例详情的默认参数设置
            request = CommonRequest()
            request.set_accept_format('json')
            request.set_domain('r-kvstore.aliyuncs.com')
            request.set_method('POST')
            request.set_version('2015-01-01')
            request.set_action_name('DescribeInstanceAttribute')
            # 自定义添加查询参数
            request.add_query_param('RegionId', reg)
            request.add_query_param('InstanceId', ins["InstanceId"])
            # 发送请求
            response = client.do_action_with_exception(request)
            try:
                rds_time = json.loads(
                    response)["Instances"]["DBInstanceAttribute"][0]["EndTime"]
                ali_time = rds_time.split("-")
                #ali_time = ins["ExpiredTime"].split("-")
                year_ali, month_ali, day_ali = ali_time[0], ali_time[
                    1], ali_time[2][:2]
                # 如果系统时间与获取到的阿里云rds过期时间相差小于或等于3天则告警
                if int(day_ali) <= (
                        int(day_sys) + 3) and int(month_ali) <= int(
                            month_sys) and int(year_ali) <= int(year_sys):
                    rds_id = ins["InstanceId"]
                    expire_time = rds_time[:10]
                    rds_list.append([rds_id, expire_time])
            except Exception as e:
                print(response)
                print("按量付费实例无到期时间", ins, e)

    # 如果有要过期的rds实例则打印列表,没有则不打印
    #print(rds_list)
    if rds_list != []:
        return "redis rds would expired: ", rds_list
    else:
        return "no redis rds expired"
コード例 #3
0
ファイル: test_request.py プロジェクト: P79N6A/travel
 def test_trans_to_acs_request_to_roa(self):
     r = CommonRequest()
     # signed_header
     with self.assertRaises(ClientException) as ex:
         r.trans_to_acs_request()
     self.assertEqual(ex.exception.error_code, "SDK.InvalidParams")
     self.assertEqual(
         ex.exception.message,
         "common params [version] is required, cannot be empty")
     r.set_version("version")
     with self.assertRaises(ClientException) as ex:
         r.trans_to_acs_request()
     self.assertEqual(ex.exception.error_code, "SDK.InvalidParams")
     self.assertEqual(
         ex.exception.message,
         "At least one of [action] and [uri_pattern] has a value")
     r.set_uri_pattern("/users/:userid")
     with self.assertRaises(ClientException) as ex:
         r.trans_to_acs_request()
     self.assertEqual(ex.exception.error_code, "SDK.InvalidParams")
     self.assertEqual(
         ex.exception.message,
         "At least one of [domain] and [product_name] has a value")
     r.set_product('product')
     r.trans_to_acs_request()
     self.assertEqual(r.get_style(), "ROA")
コード例 #4
0
    def send_sms(self, zb1, z1, zb2, z2):

        t1 = time.time() - self.init_time
        self.write_log(t1)

        if t1 <= 240:
            return

        client = AcsClient('dd', 'dd', 'cn-hangzhou')
        time2 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('dd')
        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', "dd")
        request.add_query_param('SignName', "dd")
        request.add_query_param('TemplateCode', "dd")
        request.add_query_param('TemplateParam',
                                "{\"zb1\": \"" + zb1 + "\",\"z1\": \"" + z1 + "\",\"zb2\":\"" + zb2 + "\",\"z2\":\"" + z2 + "\",\"time\":\"" + time2 + "\"}")
        self.write_log(f"{zb1},{z1},{zb2},{z2}")

        # response = client.do_action(request)
        # python2:  print(response)
        # self.write_log(str(response, encoding = 'utf-8'))
        self.sendmail(zb1 + "-" + time2, z1 + ',' + zb2 + ',' + z2)
コード例 #5
0
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)
コード例 #6
0
ファイル: aliyun_memcache.py プロジェクト: zztfr/zabbix_item
    def getInformation(self, Metric):
        if Metric == 'help':
            print u"""
            更多监控项请查看:https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.676.ddaefx#h2--memcache-6
            """
            return
        try:
            _domian = "metrics.%s.aliyuncs.com" % self.region_id
            request = CommonRequest(domain=_domian, version='2018-03-08', action_name='QueryMetricList')
            request.add_query_param('Project', 'acs_memcache')
            request.add_query_param('Metric', Metric)
            request.add_query_param('Dimensions', "{'instanceId':'" + self.instanceId + "'}")
            response = json.loads(self.clt.do_action_with_exception(request))
            #print response  # 查看返回的结果
            if response['Datapoints'] != u'[]':
                restr = "\"Average\":(\\d+(\\.\\d+)?)"
                regex = re.compile(restr, re.IGNORECASE)
                mylist = regex.findall(response['Datapoints'])
                # print mylist   查看正则匹配的数值和小数
                if Metric == 'UsedMemory':
                    print mylist[-1][0] + "E7"
                else:
                    print mylist[-1][0]
            else:
                print u'暂无返回结果'


        except Exception as e:
            print u"""
无法获取:%s

更多Metric监控项请查看:
https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.676.ddaefx#h2--memcache-6""" % str(e)
コード例 #7
0
ファイル: smsserver.py プロジェクト: leipengkai/docker-drf
def sms_pubilc_param(mobile, routing_key, action):
    # client = AcsClient('<accessKeyId>', '<accessSecret>', 'default')
    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")  # 短信API的值
    request.add_query_param('SignName', SIGNNAME)  # 短信签名名称

    # 业务参数
    request.add_query_param('PhoneNumbers', mobile)

    # 短信模板
    template_code = ""
    if action == "register":
        template_code = TEMPLATECODEREG
    elif action == "login":
        template_code = "SMS_xxx"
    return request, template_code, client
コード例 #8
0
def change_record_ip(RecordId, ip, hierarchy=2):
    record=get_domain_record_by_RecordId(RecordId)
    if record==None or not isinstance(record,dict) or not record.__contains__('RR') or not record.__contains__('Type') or ip==None:
        print('Something went wrong when tyring update domain record(record=\''+str(record)+'\') from \'change_record_ip(\'' + RecordId + '\',\'' + ip + '\')\'')
        appendline_error('change_record_ip(\'' + str(RecordId) + '\',\'' + str(ip) + '\') - record = \'' + str(record) + '\')', 'CHANGE RECORD IP', hierarchy)
        return None
    request = CommonRequest()
    request.set_domain('alidns.aliyuncs.com')
    request.set_version('2015-01-09')
    request.set_action_name('UpdateDomainRecord')
    request.add_query_param('RecordId', RecordId)
    request.add_query_param('RR', record['RR'])
    request.add_query_param('Type', record['Type'])
    request.add_query_param('Value', ip)
    try:
        response = client.do_action_with_exception(request)
        results = json.loads(response.decode())
    except:
        print('Something went wrong when tyring update domain record(\''+record['RR']+'.'+DOMAIN_NAME+'\') from \'change_record_ip(\''+RecordId+'\',\''+ip+'\')\'')
        appendline_error('change_record_ip(\'' + str(RecordId) + '\',\'' + str(ip) + '\') - record(\'' + str(record['RR']) + '.' + str(DOMAIN_NAME) + '\')', 'CHANGE RECORD IP', hierarchy)
        return False
    if results['RecordId'] == RecordId:
        appendline_log('Domain(\''+str(record['RR'])+'.'+str(DOMAIN_NAME)+'\') record('+str(RecordId)+')\'s value changed to '+str(ip), 'CHANGE RECORD IP', hierarchy)
        print('Domain record change successfully!')
        return True
    else:
        appendline_error('change_record_ip(\'' + str(RecordId) + '\',\'' + str(ip) + '\') - record(\'' + str(record['RR']) + '.' + str(DOMAIN_NAME) + '\')', 'CHANGE RECORD IP', hierarchy)
        print('Failed to change domain record!')
        return False
コード例 #9
0
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'))
コード例 #10
0
def deploy(warurl):
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_method('POST')
    request.set_protocol_type('https')  # https | http
    request.set_domain(endpoint)
    request.set_version('2017-08-01')

    packageversion = strftime("%Y%m%d%H%M%S", gmtime())

    request.add_query_param('RegionId', region)
    request.add_query_param('AppId', appid)
    request.add_query_param('PackageVersion', packageversion)
    request.add_query_param('DeployType', 'url')
    request.add_query_param('WarUrl', warurl)
    request.add_query_param('GroupId', 'all')
    #request.set_uri_pattern('/pop/v5/app/app_status')
    request.set_uri_pattern('/pop/v5/changeorder/co_deploy')
    body = ''''''
    response = ''
    request.set_content(body)

    response = client.do_action(request)

    # python2:
    print(response)
コード例 #11
0
    def test_bug_with_17661113(self):
        request = CommonRequest()
        request.set_domain("nlp.cn-shanghai.aliyuncs.com")
        request.set_uri_pattern("/nlp/api/reviewanalysis/ecommerce")
        request.set_method(method_type.POST)
        request.add_header("x-acs-signature-method", "HMAC-SHA1")
        request.add_header("x-acs-signature-nonce", uuid.uuid4().hex)
        request.add_header("x-acs-signature-version", "1.0")
        content = '{"text":"裙子穿着很美哦,上身效果也不错,是纯棉的料子,穿着也很舒服。", ' \
                  '"cate":"clothing"}'
        request.set_content_type("application/json;chrset=utf-8")
        request.set_accept_format("application/json;chrset=utf-8")
        if sys.version_info[0] == 2:
            request.set_content(content)
        else:
            request.set_content(content.encode('utf-8'))
        request.set_version('2018-04-08')
        request.set_action_name("None")

        # We have 2 possible situations here: NLP purchased or NLP purchased
        # The test case should be passed in both situations.
        try:
            response = self.client.do_action_with_exception(request)
            self.assertTrue(response)
        except ServerException as e:
            self.assertEqual("InvalidApi.NotPurchase", e.error_code)
            self.assertEqual("Specified api is not purchase",
                             e.get_error_msg())
コード例 #12
0
ファイル: url.py プロジェクト: zhangshuo1996/school_profile
def message_api(telephone, verification_code):
    """
    调用阿里云短信服务
    """
    # 服务器的AccessKeyId和AccessKeySecret
    client = AcsClient(SEND_SMS_CONFIG['AccessKeyId'],
                       SEND_SMS_CONFIG['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')  # 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', str(telephone))
    request.add_query_param('SignName', "三螺旋大数据")
    request.add_query_param('TemplateCode', SEND_SMS_CONFIG['TemplateCode'])
    request.add_query_param('TemplateParam',
                            "{'code':" + verification_code + "}")

    response = client.do_action_with_exception(request)
    return_message = eval(str(response, encoding='utf-8'))
    # print(return_message)
    return return_message["Code"] is "OK"
コード例 #13
0
ファイル: sendData.py プロジェクト: xiaoyou66/QQrobot
async def speakvoice(key: str) -> str:
    try:
        data = getconfig()
        filepath = os.path.dirname(__file__) + '\data.txt'
        if (key == '鉴权'):
            # 创建AcsClient实例
            client = AcsClient(data["AccessKey"], data["AccessKeySecret"],
                               "cn-shanghai")
            # 创建request,并设置参数
            request = CommonRequest()
            request.set_method('POST')
            request.set_domain('nls-meta.cn-shanghai.aliyuncs.com')
            request.set_version('2019-02-28')
            request.set_action_name('CreateToken')
            response = client.do_action_with_exception(request)
            content = json.loads(response)
            token = content['Token']['Id']
            with open(filepath, "w") as fp:
                fp.write(token)
            return '[CQ:face,id=101]鉴权成功,你现在可以开始发语音了!'
        with open(filepath, "r") as fp:
            token = fp.read()
        client = ali_speech.NlsClient()
        # 设置输出日志信息的级别:DEBUG、INFO、WARNING、ERROR
        client.set_log_level('INFO')
        appkey = data['key']
        text = key
        audio_name = 'data/record/mymusic/' + '1.mp3'
        process(client, appkey, token, text, audio_name)
        return "[CQ:record,file=mymusic/1.mp3,magic=false]"
    except (Exception):
        return "[CQ:face,id=177]出了问题,好像不能获取到数据了,请重试!"
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
コード例 #15
0
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
コード例 #16
0
    def test_rpc_common_request_with_sts_token(self):
        sub_client = self.init_sub_client()
        self._create_default_ram_role()
        self._attach_default_policy()

        request = AssumeRoleRequest()
        request.set_RoleArn(self.ram_role_arn)
        request.set_RoleSessionName(self.default_role_session_name)
        response = sub_client.do_action_with_exception(request)
        response = self.get_dict_response(response)
        credentials = response.get("Credentials")

        # Using temporary AK + STS for authentication
        sts_token_credential = StsTokenCredential(
            credentials.get("AccessKeyId"), credentials.get("AccessKeySecret"),
            credentials.get("SecurityToken"))
        acs_client = AcsClient(region_id="me-east-1",
                               credential=sts_token_credential)
        # the common request
        request = CommonRequest(domain="ecs.aliyuncs.com",
                                version="2014-05-26",
                                action_name="DescribeRegions")
        response = acs_client.do_action_with_exception(request)
        ret = self.get_dict_response(response)
        self.assertTrue(ret.get("Regions"))
        self.assertTrue(ret.get("RequestId"))
コード例 #17
0
    def _refresh_session_ak_and_sk(self):
        request = CommonRequest(product="Sts",
                                version='2015-04-01',
                                action_name='AssumeRole')
        request.set_method('POST')
        request.set_protocol_type('https')
        request.add_query_param('RoleArn', self._credential.role_arn)
        request.add_query_param('RoleSessionName',
                                self._credential.session_role_name)
        request.add_query_param('DurationSeconds', self._SESSION_PERIOD)
        request.set_accept_format('JSON')

        access_key_credential = AccessKeyCredential(
            self._credential.sts_access_key_id,
            self._credential.sts_access_key_secret)
        signer = AccessKeySigner(access_key_credential)

        status, headers, body = self._doAction(request, signer)
        if status == 200:
            response = json.loads(body.decode('utf-8'))
            session_ak = response.get("Credentials").get("AccessKeyId")
            session_sk = response.get("Credentials").get("AccessKeySecret")
            token = response.get("Credentials").get("SecurityToken")
            self._session_credential = session_ak, session_sk, token
            self._last_update_time = int(time.time())
        else:
            code = error_code.SDK_GET_SESSION_CREDENTIAL_FAILED
            message = "refresh session token failed, server return: " + body
            http_status = status

            raise exceptions.ServerException(code, message, http_status)
コード例 #18
0
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')
コード例 #19
0
ファイル: apis_v1.py プロジェクト: wd-idonan/share_item
    def send(self, req):
        phone = req.data.get("phone")
        type = req.data.get("type")
        # 随机生成4位验证码
        code = str(random.randrange(1000, 10000))
        template_param = "{\"code\":\"%s\"}" % code

        client = AcsClient(settings.ACCESS_KEY_ID, settings.ACCESS_SECRET_KEY,
                           settings.REGION_ID)

        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain(settings.DOMAIN)
        request.set_method('POST')
        request.set_protocol_type('http')
        request.set_version('2017-05-25')
        request.set_action_name('SendSms')

        request.add_query_param('PhoneNumbers', phone)
        request.add_query_param('SignName', settings.SIGN_NAME)
        request.add_query_param('TemplateCode', settings.TEMPLATE_NAME)
        request.add_query_param('TemplateParam', template_param)

        response = client.do_action_with_exception(request)
        res = json.loads(response.decode())
        if res.get("Message") == "OK" and res.get("Code") == "OK":
            live_time = 60 * 5  # 5分钟
            # cache.set("baoxian" + phone, code, live_time)
            cache.set(type + phone, code, live_time)
            data = {"code": 200, "msg": "发送成功"}
        else:
            data = {"code": 2, "msg": res.get("Message")}
        return Response(data)
コード例 #20
0
ファイル: aliyunsms.py プロジェクト: ji-xiaokang/MX
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')
コード例 #21
0
    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
コード例 #22
0
ファイル: aliyun.py プロジェクト: guan-liangliang/haima
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')
コード例 #23
0
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')
コード例 #24
0
ファイル: verify_code.py プロジェクト: senou/portal
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
コード例 #25
0
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'))
コード例 #26
0
def smscode1(request):
    """
    检查手机验证码
    :param request:
    :return:
    """
    # !/usr/bin/env python
    # coding=utf-8
    phone = request.GET.get('phone', '')
    number = random.randint(100000, 999999)

    client = AcsClient('LTAIeUCNImn4yp21', 'M3Yxqxs3wOljHPn7EimdETr9PkDwdN',
                       '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_169903182")
    request.add_query_param('TemplateParam', "{'code':%s}" % number)

    response = client.do_action_with_exception(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))

    jionStr = {'number': number}

    return HttpResponse(json.dumps(jionStr))
コード例 #27
0
ファイル: sms.py プロジェクト: HashFlag/study-city
def send_sms(template, phone, template_code):
    client = AcsClient(settings.ACCESSKEY_ID, settings.ACCESSKEY_SERECT,
                       settings.REGION_ID)
    # 短信里面的 我的AccessKey ID 我的Access Key Secret
    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')

    # set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等
    request.set_action_name('SendSms')
    # request.set_action_name('QuerySendDetails')

    # 这个参数也是固定的
    request.add_query_param(
        'RegionId', settings.REGION_ID)  # 98A66994-3DF4-4FA5-A33F-CCB36EB599D0
    # request.add_query_param('RegionId', "cn-hangzhou")

    request.add_query_param('PhoneNumbers', phone)  # 发给谁
    request.add_query_param('SignName', settings.SIGN_NAME)  # 签名
    request.add_query_param('TemplateCode', template_code)  # 模板编号
    request.add_query_param('TemplateParam', f"{template}")  # 发送验证码内容
    response = client.do_action_with_exception(request)
    return response
コード例 #28
0
    def send_to(self, phone_number):
        ''''send'''
        if self.debug:
            return '123456'
        code = gen_sms_code(6)
        from aliyunsdkcore.client import AcsClient
        from aliyunsdkcore.request import CommonRequest
        client = AcsClient(self.access_key_id, self.access_secret,
                           '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_number)
        request.add_query_param('SignName', '知识树')
        request.add_query_param('TemplateCode', 'SMS_194635024')
        request.add_query_param('TemplateParam', json.dumps({'code': code}))

        response = client.do_action_with_exception(request)
        # python2:  print(response)
        # print(str(response, encoding='utf-8'))
        return code
コード例 #29
0
ファイル: test_request.py プロジェクト: P79N6A/travel
 def test_common_request_get_signed_header(self, mock_get_rfc_2616_date):
     r = CommonRequest()
     r.set_version("version")
     r.set_uri_pattern('/users/[userid]')
     r.set_path_params({"userid": "jacksontian"})
     r.set_product('product')
     r.trans_to_acs_request()
     self.assertEqual(r.get_url("regionid", "accesskeyid", "secret"),
                      "/users/jacksontian")
     self.assertEqual(r.get_style(), "ROA")
     mock_get_rfc_2616_date.return_value = "2018-12-04T03:25:29Z"
     headers = r.get_signed_header("regionid", "accesskeyid", "secret")
     mock_get_rfc_2616_date.assert_called_once_with()
     self.assertDictEqual(
         headers, {
             'Accept': 'application/octet-stream',
             'Authorization':
             'acs accesskeyid:Lq1u0OzLW/uqLQswxwhne97Umlw=',
             'Date': '2018-12-04T03:25:29Z',
             'x-acs-region-id': 'regionid',
             'x-acs-signature-method': 'HMAC-SHA1',
             'x-acs-signature-version': '1.0',
             'x-acs-version': 'version',
             'x-sdk-invoke-type': 'common'
         })
コード例 #30
0
    def send_sms(self, phone_number, msg_type, code=0):
        if code == 0:
            code = self.generate_code()
        if msg_type == AliyunSms.MSG_TYPE_REGISTER:
            template_code = 'SMS_164075985'
        else:
            template_code = 'SMS_164075981'
        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_number)
        request.add_query_param('SignName', self.sign_name)
        request.add_query_param('TemplateCode', template_code)
        request.add_query_param('TemplateParam', json.dumps({"code": code}))

        try:
            response = self.aliyun_client.do_action_with_exception(request)
            result = json.loads(str(response, encoding="utf-8"))
            if result["Code"] == "OK":
                # save the send record
                record = SmsVerifyRecord()
                record.code = code
                record.send_type = msg_type
                record.mobile_phone = phone_number
                record.save()
        except:
            return None