mirror of
https://github.com/FliegendeWurst/googleplay-api.git
synced 2024-11-22 12:54:58 +00:00
Build request params with current device data
Login and Auth parameters are built using device selected in deviceBuilder object. Also got rid of an unused parameter client_sig.
This commit is contained in:
parent
dd2d7b64d1
commit
5034244620
@ -14,6 +14,7 @@ DFE_TARGETS = "CAEScFfqlIEG6gUYogFWrAISK1WDAg+hAZoCDgIU1gYEOIACFkLMAeQBnASLATlAS
|
|||||||
LANG = "en_US"
|
LANG = "en_US"
|
||||||
TIMEZONE = 'America/New_York'
|
TIMEZONE = 'America/New_York'
|
||||||
GOOGLE_PUBKEY = "AAAAgMom/1a/v0lblO2Ubrt60J2gcuXSljGFQXgcyZWveWLEwo6prwgi3iJIZdodyhKZQrNWp5nKJ3srRXcUW+F1BD3baEVGcmEgqaLZUNBjm057pKRI16kB0YppeGx5qIQ5QjKzsR8ETQbKLNWgRY0QRNVz34kMJR3P/LgHax/6rmf5AAAAAwEAAQ=="
|
GOOGLE_PUBKEY = "AAAAgMom/1a/v0lblO2Ubrt60J2gcuXSljGFQXgcyZWveWLEwo6prwgi3iJIZdodyhKZQrNWp5nKJ3srRXcUW+F1BD3baEVGcmEgqaLZUNBjm057pKRI16kB0YppeGx5qIQ5QjKzsR8ETQbKLNWgRY0QRNVz34kMJR3P/LgHax/6rmf5AAAAAwEAAQ=="
|
||||||
|
ACCOUNT = "HOSTED_OR_GOOGLE"
|
||||||
|
|
||||||
# parse phone config from the file 'device.properties'.
|
# parse phone config from the file 'device.properties'.
|
||||||
# if you want to add another phone, just create another section in
|
# if you want to add another phone, just create another section in
|
||||||
@ -65,6 +66,31 @@ class DeviceBuilder(object):
|
|||||||
hardware=self.device['build.hardware'],
|
hardware=self.device['build.hardware'],
|
||||||
product=self.device['build.product'])
|
product=self.device['build.product'])
|
||||||
|
|
||||||
|
def getAuthParams(self, email, passwd):
|
||||||
|
return {"Email": email,
|
||||||
|
"EncryptedPasswd": passwd,
|
||||||
|
"accountType": ACCOUNT,
|
||||||
|
"has_permission": "1",
|
||||||
|
"source": "android",
|
||||||
|
"device_country": LANG[0:2],
|
||||||
|
"service": "androidmarket",
|
||||||
|
"app": "com.android.vending",
|
||||||
|
"lang": LANG,
|
||||||
|
"sdk_version": self.device['build.version.sdk_int']}
|
||||||
|
|
||||||
|
def getLoginParams(self, email, encryptedPass):
|
||||||
|
return {"Email": email,
|
||||||
|
"EncryptedPasswd": encryptedPass,
|
||||||
|
"service": "ac2dm",
|
||||||
|
"add_account": "1",
|
||||||
|
"accountType": ACCOUNT,
|
||||||
|
"has_permission": "1",
|
||||||
|
"app": "com.google.android.gsf",
|
||||||
|
"source": "android",
|
||||||
|
"device_country": LANG[0:2],
|
||||||
|
"lang": LANG,
|
||||||
|
"sdk_version": self.device['build.version.sdk_int']}
|
||||||
|
|
||||||
def getAndroidCheckinRequest(self):
|
def getAndroidCheckinRequest(self):
|
||||||
request = googleplay_pb2.AndroidCheckinRequest()
|
request = googleplay_pb2.AndroidCheckinRequest()
|
||||||
request.id = 0
|
request.id = 0
|
||||||
|
@ -44,12 +44,10 @@ class GooglePlayAPI(object):
|
|||||||
SEARCHURL = FDFE + "search"
|
SEARCHURL = FDFE + "search"
|
||||||
CHECKINURL = BASE + "checkin"
|
CHECKINURL = BASE + "checkin"
|
||||||
AUTHURL = BASE + "auth"
|
AUTHURL = BASE + "auth"
|
||||||
ACCOUNT = "HOSTED_OR_GOOGLE"
|
|
||||||
|
|
||||||
def __init__(self, debug=False, device_codename='bacon'):
|
def __init__(self, debug=False, device_codename='bacon'):
|
||||||
self.authSubToken = None
|
self.authSubToken = None
|
||||||
self.gsfId = None
|
self.gsfId = None
|
||||||
self.lang = config.LANG
|
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
self.deviceBuilder = config.DeviceBuilder(device_codename)
|
self.deviceBuilder = config.DeviceBuilder(device_codename)
|
||||||
|
|
||||||
@ -152,20 +150,7 @@ class GooglePlayAPI(object):
|
|||||||
|
|
||||||
encryptedPass = self.encrypt_password(email, password).decode('utf-8')
|
encryptedPass = self.encrypt_password(email, password).decode('utf-8')
|
||||||
# AC2DM token
|
# AC2DM token
|
||||||
params = {
|
params = self.deviceBuilder.getLoginParams(email, encryptedPass)
|
||||||
"Email": email,
|
|
||||||
"EncryptedPasswd": encryptedPass,
|
|
||||||
"service": "ac2dm",
|
|
||||||
"add_account": "1",
|
|
||||||
"accountType": self.ACCOUNT,
|
|
||||||
"has_permission": "1",
|
|
||||||
"app": "com.google.android.gsf",
|
|
||||||
"source": "android",
|
|
||||||
"device_country": "en",
|
|
||||||
"lang": self.lang,
|
|
||||||
"sdk_version": "25",
|
|
||||||
"client_sig": "38918a453d07199354f8b19af05ec6562ced5788"
|
|
||||||
}
|
|
||||||
response = requests.post(self.AUTHURL, data=params, verify=ssl_verify)
|
response = requests.post(self.AUTHURL, data=params, verify=ssl_verify)
|
||||||
data = response.text.split()
|
data = response.text.split()
|
||||||
params = {}
|
params = {}
|
||||||
@ -202,19 +187,7 @@ class GooglePlayAPI(object):
|
|||||||
raise LoginError('Either (email,pass) or (gsfId, authSubToken) is needed')
|
raise LoginError('Either (email,pass) or (gsfId, authSubToken) is needed')
|
||||||
|
|
||||||
def getAuthSubToken(self, email, passwd):
|
def getAuthSubToken(self, email, passwd):
|
||||||
params = {
|
params = self.deviceBuilder.getAuthParams(email, passwd)
|
||||||
"Email": email,
|
|
||||||
"EncryptedPasswd": passwd,
|
|
||||||
"accountType": self.ACCOUNT,
|
|
||||||
"has_permission": "1",
|
|
||||||
"source": "android",
|
|
||||||
"device_country": "en",
|
|
||||||
"service": "androidmarket",
|
|
||||||
"app": "com.android.vending",
|
|
||||||
"lang": self.lang,
|
|
||||||
"sdk_version": "25",
|
|
||||||
"client_sig": "38918a453d07199354f8b19af05ec6562ced5788"
|
|
||||||
}
|
|
||||||
response = requests.post(self.AUTHURL, data=params, verify=ssl_verify)
|
response = requests.post(self.AUTHURL, data=params, verify=ssl_verify)
|
||||||
data = response.text.split()
|
data = response.text.split()
|
||||||
params = {}
|
params = {}
|
||||||
|
Loading…
Reference in New Issue
Block a user