SORU
19 EYLÜL 2008, Cuma


Nasıl doğrulanmış bir Google App erişimi (non-web) python istemci bir Motor servisi musunuz?

- http://mylovelyapp.appspot.com/uygulama Google App Motoru var Sayfa mylovelypage

Şu an için, bu sayfada sadece self.response.out.write('OK') yapar

Eğer Bilgisayarım: aşağıdaki Python kaçarsam

import urllib2
f = urllib2.urlopen("http://mylovelyapp.appspot.com/mylovelypage")
s = f.read()
print s
f.close()

yazdırır "" . TAMAM

sorun varsa app . yaml Bu sayfa için login:required eklersem

bu Google HTML giriş sayfası Hesapları yazdırır

"" Kimlik doğrulama yaklaşımları. normal denedim örneğin

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)

Ama hiç bir fark - ben hala giriş sayfasını HTML geri geliyor.

Google's ClientLogin auth API, denedim ama işe giremiyorum.

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

Bazı token doğru olarak elde etmek mümkün gibi görünüyor, ama mylovelypage 'bana giriş sayfası HTML dönüş hala. aradığımda başlığındaki kullanmaya çalışır :-(

Herkes lütfen yardımcı olabilir mi?

GData client library Bu tür bir şey yapmak için kullanabilir miyim? Gelen ben ne okudum, App Engine uygulamaları erişmek mümkün olması gerektiğini düşünüyorum, ama kimlik doğrulama App Engine şeyler için çalışma orada da gittikçe daha fazla başarılı olamadım

Olması gereken anahtar kelimeler numuneler için herhangi bir işaretçiler, makaleler, hatta sadece beni başlamak için arıyor, çok mutluluk duyacağız.

Teşekkürler!

CEVAP
19 EYLÜL 2008, Cuma


appcfg.py, App Engine için veri yükler bu aracı tam olarak bunu yapmak için App Engine sunucuyla kimlik doğrulaması vardır. İlgili işlevselliği appengine_rpc.py içine soyutlanmış. Özetle, çözümdür:

  1. Google ClientLogin API bir kimlik doğrulama belirteci elde etmek için kullanın. appengine_rpc.py _GetAuthToken bunu yapmaz
  2. App Engine uygulaması üzerine özel bir URL token için auth gönderin. Bu sayfa daha sonra kurabiye ve 302 yönlendirme döndürür. Yönlendirme yok sayıp çerez saklamak. appcfg.py _GetAuthCookie bunu yapmaz
  3. Gelecek olan tüm istekleri geri çerez kullanın.

Bir kısmı aynı zamanda bak _Authenticate, nasıl appcfg kolları çeşitli dönüş kodları ClientLogin ve _GetOpener, nasıl appcfg oluşturur urllib2 OpenerDirector o değil izleyin HTTP yönlendirir. Ya da, aslında, hemen hemen ihtiyacınız olan her şeyi yapıyorlar beri AbstractRpcServer ve HttpRpcServer dersleri toptan kullanabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • PaysNatalAu's channel

    PaysNatalAu'

    11 Aralık 2010
  • RobertDuskin

    RobertDuskin

    12 HAZİRAN 2008
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009