我正在实现一个AI机器人,它使用DialogueFlow与我的匹配对象进行智能对话。包含所有脚本的GitHub包的链接在这里:https://github.com/nathan-149/tinderbot
我在这一点上只是试图获得身份验证令牌,以挂钩机器人,这里是第一个脚本的代码,应该返回API令牌:
import json
import requests
CODE_REQUEST_URL = "https://api.gotinder.com/v2/auth/sms/send?auth_type=sms"
CODE_VALIDATE_URL = "https://api.gotinder.com/v2/auth/sms/validate?auth_type=sms"
TOKEN_URL = "https://api.gotinder.com/v2/auth/login/sms"
HEADERS = {'user-agent': 'Tinder/11.4.0 (iPhone; iOS 12.4.1; Scale/2.00)', 'content-type': 'application/json'}
def send_otp_code(phone_number):
data = {'phone_number': phone_number}
r = requests.post(CODE_REQUEST_URL, headers=HEADERS, data=json.dumps(data), verify=False)
print(r.url)
response = r.json()
if(response.get("data")['sms_sent'] == False):
return False
else:
return True
def get_refresh_token(otp_code, phone_number):
data = {'otp_code': otp_code, 'phone_number': phone_number}
r = requests.post(CODE_VALIDATE_URL, headers=HEADERS, data=json.dumps(data), verify=False)
print(r.url)
response = r.json()
if(response.get("data")["validated"] == False):
return False
else:
return response.get("data")["refresh_token"]
def get_api_token(refresh_token):
data = {'refresh_token': refresh_token }
r = requests.post(TOKEN_URL, headers=HEADERS, data=json.dumps(data), verify=False)
print(r.url)
response = r.json()
return response.get("data")["api_token"]
phone_number = input("Please enter your phone number under the international format (country code + number): ")
log_code = send_otp_code(phone_number)
otp_code = input("Please enter the code you've received by sms: ")
refresh_token = get_refresh_token(otp_code, phone_number)
print("Here is your Tinder token: " + str(get_api_token(refresh_token)))
字符串
不幸的是,当我运行代码并从我的手机输入访问代码时,我得到以下错误:
File "c:\Users\MIS-l\OneDrive\Desktop\tinderbot-master\phone_auth_token.py", line 44, in <module>
print("Here is your Tinder token: " + get_api_token(refresh_token))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\MIS-l\OneDrive\Desktop\tinderbot-master\phone_auth_token.py", line 37, in get_api_token
return response.get("data")["api_token"]
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
型
我尝试访问脚本开头顶部的API链接,但所有这些链接都出现错误404。
我该怎么做才能获得访问令牌?
1条答案
按热度按时间8cdiaqws1#
简单来说,下面的错误只是意味着这个API端点
TOKEN_URL = "https://api.gotinder.com/v2/auth/login/sms"
不再工作,实际上所有这些端点都不再工作。这是因为Tinder已经改变了其新的短信身份验证方式(v3),我们对此无能为力。字符串
感谢创建此PR的jimtje
解决方案位于here(相信我,我也试过这个,它的作品)。只需复制以下文件
authgateway.py
和sms_auth_v3.py
,并把它们放在一个文件夹(如果你可以复制分支,使您的生活更容易,这是罚款以及)(请确保您安装了requirements.txt中所需的所有依赖项)。需要注意的一点是,当我第一次尝试它不工作,经过几天的计算出来,我注意到,这是所有因为标题。为了缩短它,请将标题更改为此评论在这里。完成所有这些之后,只需运行
sms_auth_v3.py
,然后按照以下步骤执行身份验证过程:1.提交您的电话号码。您将收到一个OTP代码。
1.提交发送到您的电话号码的OTP代码
1.您将在电子邮件中收到另一个与您的Tinder帐户关联的OTP
1.提交电子邮件OTP
1.完成!您将最终拥有
refresh token
和auth token