pip install smsactivate from smsactivate.api import SMSActivateAPI
1. 获取密匙
在https://sms-activate.io/cn/api2#balans页面点击生成密匙
2. 查看所需服务的代码符号,点击见表
查看国家代码符号点击见表
3. 获取手机号
def get_phone_new(self): api = SMSActivateAPI('密匙') try:# go接码谷歌邮箱 0表示俄罗斯 phone_dic = api.getNumber(service='go', country='0') print('phone_dic:', phone_dic) return phone_dic except: time.sleep(2) return {}
4. 查询短信
def get_sms(self, phone_dic): # STATUS_WAIT_CODE - 等待短信 code_num = None code_num1 = None code_num2 = None count = 0 while True: api = SMSActivateAPI('密匙') # phone_dic = {'activation_id': 2598112636, 'phone': 491781454294} try: code = api.getFullSms(phone_dic['activation_id']) except: time.sleep(2) continue if ':' in str(code): code_num = code.split(':')[1].strip() print('code:', code) Activations = api.getActiveActivations() activeActivations = Activations['activeActivations'] print('activeActivations:', activeActivations) for active in activeActivations: if str(active['activationId']) == str(phone_dic['activation_id']): code_num1 = active['smsCode'][0] if isinstance(active['smsCode'], list) else active['smsCode'] code_num2 = active['smsText'][0] if isinstance(active['smsText'], list) else active['smsText'] break code_num = code_num or code_num1 or code_num2 if code_num: break time.sleep(5) count += 1 if count >= 24:#循序查询2分钟 break if code_num: return code_num else: return False
5. 2分钟未收到短信码则取消手机号
def set_status(self, phone_dic): # 取消号码 返回 ACCESS_CANCEL api = SMSActivateAPI('密匙') try: res = api.setStatus(id=phone_dic['activation_id'], status=8) print(res) except: pass