Refresh token doesn't work
Exception has occurred: ValueError
Failed to refresh auth data: {'error_description': 'Invalid grant_type parameters', 'error': 'invalid_grant'}
KeyError: 'refresh_token'
The above exception was the direct cause of the following exception:
File "/Users/_/Documents/Projects/py/boosty/main.py", line 22, in loginAsync
token = await auth.refresh_auth_data(session=api.http_client, api_url=API_URL)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/_/Documents/Projects/py/boosty/main.py", line 31, in main
asyncio.run(loginAsync())
File "/Users/_/Documents/Projects/py/boosty/main.py", line 34, in <module>
main()
ValueError: Failed to refresh auth data: {'error_description': 'Invalid grant_type parameters', 'error': 'invalid_grant'}
login method:
async def loginAsync():
auth = Auth(auth_data=auth_data)
api = API(auth=auth)
await auth.refresh_auth_data(session=api.http_client, api_url=API_URL)
response = await api.get_post("boosty", post_id="c9fb8a19-c45e-4602-9942-087c3af28c1b")
print(response.title)
Do you need some additional details to figure out issue?
I tried to send request directly in Postman - received that response:
{
"error_description": "Invalid parameters: device_os, refresh_token, device_id, grant_type",
"error": "invalid_param"
}
which auth method did you use? phone or social network one?
I used cookie from browser. in browser I was authenticated via google account
could you wait for refresh in developer tools?
- just login to your account in new browser and close tab and browser
- wait from one day to week
- open new tab in browser, then open dev tools > network, then open boosty.to page
- filter requests by api word and find refresh one
- remove your tokens from request and provide it here
or you can just capture same request in your own browser if you wish
for those who come after :)
Had the same issue with grant_type being "invalid". Only after seeing this issue, realized that I was signed up using google's oauth. Switched to phone authentication, and refreshing worked. I do believe that refreshing tokens, that were given using another oauth provider, will be complicated. So I would recommend to switch to authorizing using a phone number