2009-03-30 15 views
6

Sto cercando di ottenere l'app Django (NON utilizzando il motore di Google app) per recuperare i dati dai Contatti Google utilizzando l'API dati Contatti Google. Passare attraverso authentication documentation e Data API Python client docsAutenticazione dell'API dati Google

Il primo passaggio (AuthSubRequest) che sta ottenendo il token monouso funziona correttamente. Il passo successivo (AuthSubSessionToken), che è l'aggiornamento del token monouso a un token di sessione. La chiamata API python UpgradeToSessionToken() semplicemente non ha funzionato per me che mi ha dato eccezione NonAuthSubToken:

gd_client = gdata.contacts.service.ContactsService() 
gd_client.auth_token = authsub_token 
gd_client.UpgradeToSessionToken() 

Come alternativa voglio farlo funzionare da "manuale" costruire la richiesta HTTP:

url = 'https://www.google.com/accounts/AuthSubSessionToken' 
headers = { 
       'Content-Type': 'application/x-www-form-urlencoded', 
       'Authorization': 'AuthSub token=' + authsub_token, 
       'User-Agent': 'Python/2.6.1', 
       'Host': 'https://www.google.com', 
       'Accept': 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2', 
       'Connection': 'keep-alive', 
      } 
req = urllib2.Request(url, None, headers) 
response = urllib2.urlopen(req) 

questo mi dà un errore diverso:

Errore HTTP 302: il server HTTP ha restituito un errore di reindirizzamento che porterebbe a un ciclo infinito. L'ultimo messaggio di errore 30x era: Spostato temporaneamente

Cosa sto facendo male qui? Apprezzerei aiuto/consigli/suggerimenti con uno dei metodi che sto tentando di utilizzare: chiamata API Python (UpgradeToSessionToken) o costruendo manualmente la richiesta HTTP con urllib2.

risposta

4

Secondo la documentazione here c'è un set esempio Python 2.0 ...

Running the sample code

A full working sample client, containing all the sample code shown in this document, is available in the Python client library distribution, under the directory samples/contacts/contacts_example.py .

The sample client performs several operations on contacts to demonstrate the use of the Contacts Data API.

Speriamo che vi punto nella giusta direzione.

1

Ho avuto un problema simile di recente. Il mio è stato corretto impostando "sicuro" su "vero".

next = 'http://www.coolcalendarsite.com/welcome.pyc' 
    scope = 'http://www.google.com/calendar/feeds/' 
    secure = True 
    session = True 
    calendar_service = gdata.calendar.service.CalendarService() 
+0

Grazie per il tuo suggerimento, ci provo io –

1

Esistono quattro modi diversi di autenticazione. È davvero così importante per te utilizzare AuthSub? Se non riesci a far funzionare AuthSub, considera l'approccio ClientLogin. Non ho avuto problemi a farlo funzionare.

+0

perché c'è un voto negativo qui? – Preeti

Problemi correlati