Pergunta

Eu estou tentando obter meu aplicativo Django (NOT usando Google app engine) recuperar dados de contatos do Google usando o Google API de contatos de dados. Passando por autenticação documentação , bem como Data API do Python docs cliente

O primeiro passo (AuthSubRequest) que está recebendo o uso único token funciona bem. O próximo passo (AuthSubSessionToken), que é atualização de uso único token para um token de sessão. A chamada python API UpgradeToSessionToken () simplesmente não funcionou para mim, me deu exceção NonAuthSubToken:

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

Como alternativa eu ??quero fazê-lo funcionar por "manualmente" construindo a solicitação 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)

isso me dá um erro diferente:

HTTP Erro 302: O servidor HTTP retornou um erro de redirecionamento que levaria a um loop infinito. A última mensagem 30x erro foi: Movido temporariamente

O que estou fazendo de errado aqui? Eu apreciaria ajuda / conselhos / sugestões com qualquer um dos métodos que eu estou tentando usar:. Chamada API Python (UpgradeToSessionToken) ou construir manualmente solicitação HTTP com urllib2

Foi útil?

Solução

De acordo com a documentação 2.0 aqui lá é um exemplo python set ...

Executar o código de exemplo

Um cliente de amostra de trabalho completo, que contém todo o código de exemplo mostrado neste documento, está disponível na distribuição biblioteca cliente Python, sob a samples/contacts/contacts_example.py diretório.

Os executa cliente de amostra várias operações sobre contatos para demonstrar o uso da API de contatos de dados.

Esperamos que você irá apontar na direção certa.

Outras dicas

Eu tive um problema semelhante recentemente. Mina foi corrigido pela definição "seguro" para "true".

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

Existem quatro formas diferentes para autenticar. Será que é realmente importante para você usar AuthSub? Se você não pode obter AuthSub para o trabalho, em seguida, considerar a ClientLogin abordagem. Eu não tinha problemas para obter esse trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top