AmauryCarrade / MastodonToTwitter

Mastodon <-> Twitter cross-poster.
MIT License
250 stars 41 forks source link

Logging in didn't work. Check if you typed something wrong: KeyError: 'access_token' #25

Open jrmgx opened 7 years ago

jrmgx commented 7 years ago

Using the last version, with the correct password (triple checked)

Also I suggest that if the twitter part worked well, you do not have to enter the info again if the mastodon part fail...

jerome@ns3274113:~/MastodonToTwitter$ python3.5 MastodonToTwitter.py 
This appears to be your first time running MastodonToTwitter.
After some configuration, you'll be up and running in no time.
First of all, to talk to twitter, you'll need a twitter API key.

Usually, the application creator is supposed to make that, but with
an application that isn't a hosted service or a binary blob, with
the key in plain text, this is not easily possible.

You'll need to register an app on https://apps.twitter.com/ .
You may have to add a phone number to your twitter account to be able
to do this.

Once you are done (make sure to allow your app write permissions),
go to your apps 'Keys and Tokens' page and enter the info from there
here.

Twitter Consumer Key (API Key): xxx
Twitter Consumer Secret (API Secret): xxx
Twitter Access Token: xxx
Twitter Access Token Secret: xxx

Alright, trying to connect to twitter with those credentials...

Great! Twitter access works! With mastodon, the situation is a bit easier,
all you'll have to do is enter your username (that you log in to mastodon
with, this is usually your e-mail) and password.

Mastodon server (press Enter for mastodon.social): https://mastodon.xyz
Mastodon Username (e-mail): jerome@gangneux.net
Mastodon Password: 

You already have Mastodon server set up, so we're skipping that step.

You already have an app set up, so we're skipping that step.

Traceback (most recent call last):
  File "/home/jerome/.local/lib/python3.5/site-packages/mastodon/Mastodon.py", line 146, in log_in
    self.access_token = response['access_token']
KeyError: 'access_token'
Logging in didn't work. Check if you typed something wrong
and make sure you are connected to the internet.

Mastodon server (press Enter for mastodon.social): https://
Spaxe commented 7 years ago

Sanity check: Is your 2FA turned on? If it is, it doesn't work with 2FA at the moment.

jrmgx commented 7 years ago

No it is not

Spaxe commented 7 years ago

@jrmgx what version of Mastodon.py are you using?

Mine is


Name: Mastodon.py
Version: 1.0.5
Summary: Python wrapper for the Mastodon API
Home-page: https://github.com/halcy/Mastodon.py
Author: Lorenz Diener
Author-email: lorenzd+mastodonpypypi@gmail.com
License: MIT
Location: /usr/local/lib/python3.6/site-packages
Requires: dateutils, requests```
Spaxe commented 7 years ago

Sorry, I should have read your OP closer, @jrmgx. If you are using the latest version, that error you got isn't possible.

The relevant line where you got the KeyError is:

try:
    response = self.__api_request('POST', '/oauth/token', params, do_ratelimiting = False)
    self.access_token = response['access_token']
except:
    raise MastodonIllegalArgumentError('Invalid user name, password or scopes.')

As you can see, it should have been an MastodonIllegalArgumentError instead. So I'm wondering how you managed to get a KeyError.

jrmgx commented 7 years ago

Mastodon.py (1.0.6) Also I'm always getting the last version of this repo with git pull

halcy commented 7 years ago

That sounds, weirdly enough, like a file io problem, because for once, the twitter part SHOULD not run again if it has succeeded once...

jrmgx commented 7 years ago

from what I understand here: https://github.com/halcy/MastodonToTwitter/blob/master/MastodonToTwitter.py#L188 the files are written only after the success of both Twitter and Mastodon? The server has a good working file system and I don't have other issues with it.

halcy commented 7 years ago

Oh, whoops. They are. I thought I had it set to write each set of files after they're done. That should be fixed.

That doesn't help with the original Problem, though. Does the problem still occur?

jrmgx commented 7 years ago

I changed the instance to another one and it works well

Spaxe commented 7 years ago

This may be worth reproducing for the sake of tracking down potential weird bugs - could you tell us which instance you tried that didn't work?

jrmgx commented 7 years ago

faulty: mastodon.xyz and the one what works now is mamot.fr

evilchili commented 7 years ago

I have the same problem with a personal instance, toots.evilchi.li. Works fine with mastodon.social.

The full response is:

{'error': 'invalid_client', 'error_description': 'Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.'}