2016-07-12 24 views
7

Ho registrato la mia app nella dashboard degli sviluppatori di instagram e ho provato ad usare la libreria python-instagram fatta da Facebook.instagram api keep raise 'È necessario fornire un'eccezione client_id' quando utilizzo la libreria python-instagram

Dopo aver eseguito il codice sample_app.py, ho effettuato l'accesso al mio sito Web di test (localhost: 8515) e ho effettuato l'accesso utilizzando il mio id Instagram. Tuttavia, non è possibile ottenere un codice di accesso a causa di questa eccezione "È necessario fornire un client_id"

Ho anche provato la stessa cosa utilizzando questa libreria (https://github.com/Seraphicer/python-instagram-ext) Questo perché richiamano la libreria originale richiesta e la mantengono.

+1

si dovrà aggiungere almeno una riga di codice per noi .. – DeepSpace

+1

Domande che cercano aiuto debugging (** "Perché non è questo codice di lavoro?" **) deve includere * * il comportamento desiderato, * un problema specifico o errore * e * il codice più breve necessario * per riprodurlo ** nella domanda stessa **. Le domande senza ** una chiara affermazione del problema ** non sono utili agli altri lettori. Vedi: [Come creare un esempio minimo, completo e verificabile] (http://stackoverflow.com/help/mcve). –

+0

Hanno lo stesso problema in questo momento, il codice ha funzionato bene in passato. Sembra che questo sia un problema di Instagram (relativo alla sandbox?). –

risposta

9

Ho fatto ricorso a me stesso; non è riuscito a far funzionare python-instagram. Probabilmente abbandonerà l'intera biblioteca. Troppi bug, ultimamente, e non viene gestito, credo.

@classmethod 
def exchange_code_for_access_token(cls, code, redirect_uri, **kwargs): 
    url = u'https://api.instagram.com/oauth/access_token' 
    data = { 
     u'client_id': cls.get_client_id(), 
     u'client_secret': cls.get_client_secret(), 
     u'code': code, 
     u'grant_type': u'authorization_code', 
     u'redirect_uri': redirect_uri 
    } 

    response = requests.post(url, data=data) 

    account_data = json.loads(response.content) 

    return account_data 
+0

ottima idea, grazie :) –

+0

salva la vita, grazie! – ZDunker

11

Aveva lo stesso problema, ovviamente a causa di instagram api o aggiornamento httplib2. Risolto il problema per me https://github.com/vgavro/python-instagram/commit/9dfc264571ad7c343af3899445d13afedf23e3aa (link al mio fork di python-instagram con le patch necessarie per me)

+0

imho questa è la risposta corretta! Questa patch ha risolto il problema nel mio caso. la reimplementazione come suggeriva Peter dovrebbe essere evitata. – mefiX

+0

Grazie amico, funziona con la tua patch –

+0

questo funziona come un fascino !! .. –

Problemi correlati