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_dicexcept:time.sleep(2)return {}
4. 查询短信
def get_sms(self, phone_dic):# STATUS_WAIT_CODE - 等待短信code_num = Nonecode_num1 = Nonecode_num2 = Nonecount = 0while True:api = SMSActivateAPI('密匙')# phone_dic = {'activation_id': 2598112636, 'phone': 491781454294}try:code = api.getFullSms(phone_dic['activation_id'])except:time.sleep(2)continueif ':' 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']breakcode_num = code_num or code_num1 or code_num2if code_num:breaktime.sleep(5)count += 1if count >= 24:#循序查询2分钟breakif code_num:return code_numelse:return False
5. 2分钟未收到短信码则取消手机号
def set_status(self, phone_dic):# 取消号码 返回 ACCESS_CANCELapi = SMSActivateAPI('密匙')try:res = api.setStatus(id=phone_dic['activation_id'], status=8)print(res)except:pass