Open radoystoyanov opened 3 years ago
My script needed a verification code today and hit this error for the first time. While writing a simple test script to show the issue and was reminded that it uses cookies; I got curious and found two files in the directory, {foo} and {foo}.session (where {foo} is an appleid email address with punctuation removed). After removing these files I was able to re-authenticate (after satisfying the verification challenge of course).
That didn't work for me, and the same happens for me with the reminders service ... the fmip and contacts services, however, seem to work just fine ...
Any chance one of the contributors can guide us to how we can debug this further?
One thing I found interesting, not sure if related to the above issue, is that the api.requires_2fa
and api.requires_2sa
both return False while my appleid settings show TWO-FACTOR AUTHENTICATION
as "On". Though, why would the contacts service returns info without further 2fa? Note that I use a keyring, but I also tried instantiating PyiCloudService
with a password directly, to no avail.
A duplicate of #322. (Also experiencing the same issue.)
Same thing for me.
Having the same issue. Would really love to find a solution here.
Same here
Same issue here
Same here
After comparing the request fired at browser to the payload generated at pyicloud, i found that param dsid
is lost and it causes 419 http error.
To fix the problem, you can append the following code to pyicloud/services/calendar.py:L55
params.update(
{
"lang": "en-us",
"usertz": get_localzone().zone,
"startDate": from_dt.strftime("%Y-%m-%d"),
"endDate": to_dt.strftime("%Y-%m-%d"),
"dsid": self.session.service.data["dsInfo"]["dsid"], # PATCH HERE!!
}
)
Many thanks @zarkin404 - that fixed it for me but needed to be patched on line 83 also.
Thank you very much
The monkeypatch is working for me. If this is generally a working solution, please merge soon.
Happening for me today after monkey patching the suggested. Anyone else seeing this?
I'm sorry fix didn't work for me on Python 3.9.2
File "/home/pi/python/./icloudlogin.py", line 62, in
I did the patch, but I'm now getting
pyicloud.exceptions.PyiCloudAPIResponseException: Authentication required for Account. (500)
Which is different as the error code is 500. Still not working, really need a solution.
The problem
I'm trying to retrieve calendar data from iCloud. I can authenticate successfully using the sample 2fa/2sa code. I can successfully call some of the APIs such as api.iphone.location(). However, when trying the following code, I get an error "pyicloud.exceptions.PyiCloudAPIResponseException: Authentication required for Account. (421)".
Environment
pip show pyicloud
): 0.10.2python -V
): Python 3.7.1 64-bitTraceback/Error logs
Additional information
I have including additional debug logging using:
Thanks in advance for your support!