2010-03-09 5 views
4

J'essaie d'utiliser Google OAuth pour importer les contacts d'un utilisateur. Afin d'obtenir un client et une clé secrète pour votre application, vous devez vérifier votre domaine au https://www.google.com/accounts/ManageDomains Google vous permet d'utiliser uniquement les domaines sans ports. Je veux tester et construire l'application localement si habituellement (Facebook, applications Linkedin) je utilise un tunnel SSH inverse par exemple http://6pna.com:30002Google OAuth et le développement local

Quelqu'un utilise un tunnel avec Google OAuth. Est-ce que ça marche? Jusqu'à présent, je viens de vérifier mon domaine d'applications mais mes demandes proviennent du tunnel (domaine différent) donc OAuth échoue (bien que j'arrive à Google et autorise mon application)

Des conseils, des astuces? Merci

Répondre

4

bien après tâtonnement j'ai découvert que le domaine de la demande est hors de propos

3

je viens d'utiliser la bibliothèque auth officielle gdata google http://code.google.com/p/gdata-python-client

Voici un code

google_auth_url = None 
    if not current_user.gmail_authorized: 
     google = gdata.contacts.service.ContactsService(source=GOOGLE_OAUTH_SETTINGS['APP_NAME']) 
     google.SetOAuthInputParameters(GOOGLE_OAUTH_SETTINGS['SIG_METHOD'], GOOGLE_OAUTH_SETTINGS['CONSUMER_KEY'], 
             consumer_secret=GOOGLE_OAUTH_SETTINGS['CONSUMER_SECRET']) 
     if not request.vars.oauth_verifier: 
      req_token = google.FetchOAuthRequestToken(scopes=GOOGLE_OAUTH_SETTINGS['SCOPES'], 
          oauth_callback="http://"+request.env.http_host+URL(r=request,c='default',f='import_accounts')) 
      session['oauth_token_secret'] = req_token.secret 
      google_auth_url = google.GenerateOAuthAuthorizationURL() 
     else: 
      oauth_token = gdata.auth.OAuthTokenFromUrl(request.env.request_uri) 
      if oauth_token: 
       oauth_token.secret = session['oauth_token_secret'] 
       oauth_token.oauth_input_params = google.GetOAuthInputParameters() 
       google.SetOAuthToken(oauth_token) 
       access_token = google.UpgradeToOAuthAccessToken(oauth_verifier=request.vars.oauth_verifier) 
       # store access_tonen 

     #google.GetContactsFeed() # do the process or do it in ajax (but first update the user) 
Questions connexes