J'ai une application Google App Engine - http://mylovelyapp.appspot.com/ Il a une page - mylovelypage
Pour l'instant, la page ne fait que self.response.out.write('OK')
Si je lance le Python suivant sur mon ordinateur :
import urllib2
f = urllib2.urlopen("http://mylovelyapp.appspot.com/mylovelypage")
s = f.read()
print s
f.close()
Il imprime "OK".
le problème est que si j'ajoute login:required
à cette page dans le yaml de l'application.
puis ceci imprime le HTML de la page de connexion aux comptes Google
J'ai essayé les approches d'authentification "normales", par exemple.
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(None,
uri='http://mylovelyapp.appspot.com/mylovelypage',
user='billy.bob@gmail.com',
passwd='billybobspasswd')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
Mais cela ne fait aucune différence - je récupère toujours le HTML de la page de connexion.
J'ai essayé L'API d'authentification ClientLogin de Google mais je n'arrive pas à le faire fonctionner.
h = httplib2.Http()
auth_uri = 'https://www.google.com/accounts/ClientLogin'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
myrequest = "Email=%s&Passwd=%s&service=ah&source=DALELANE-0.0" % ("billy.bob@gmail.com", "billybobspassword")
response, content = h.request(auth_uri, 'POST', body=myrequest, headers=headers)
if response['status'] == '200':
authtok = re.search('Auth=(\S*)', content).group(1)
headers = {}
headers['Authorization'] = 'GoogleLogin auth=%s' % authtok.strip()
headers['Content-Length'] = '0'
response, content = h.request("http://mylovelyapp.appspot.com/mylovelypage",
'POST',
body="",
headers=headers)
while response['status'] == "302":
response, content = h.request(response['location'], 'POST', body="", headers=headers)
print content
Il semble que je puisse obtenir un jeton correctement, mais les tentatives pour l'utiliser dans l'en-tête lorsque j'appelle 'mylovelypage' ne me renvoient que le HTML de la page de connexion. :-(
Quelqu'un peut-il m'aider, s'il vous plaît ?
Pourrais-je utiliser le Bibliothèque client GData pour faire ce genre de choses ? D'après ce que j'ai lu, je pense qu'il devrait être capable d'accéder aux applications App Engine, mais je n'ai pas réussi non plus à faire fonctionner l'authentification pour les applications App Engine.
Si vous pouvez m'indiquer des exemples, des articles, ou même des mots-clés que je devrais pour me permettre de démarrer, serait très apprécié.
Merci !