2010-08-19 6 views
0

Je peux accéder à un compte gmail d'utilisateurs en utilisant oauth, et je peux accéder aux contacts d'un utilisateur et à leurs groupes de contact via l'API google contacts (qui utilise AuthSub). Pour mon application j'ai besoin de ces deux, est-il un moyen que je puisse authentifier les deux à la fois, de sorte que je ne demande pas aux utilisateurs de passer par deux sessions d'authentification distinctes?Existe-t-il un moyen d'authentifier à la fois Gmail Oauth et Google Contacts API AuthSub en même temps?

Ou y a-t-il un moyen d'accéder aux groupes de contacts d'un utilisateur à l'aide de l'authentification oAuth de Gmail?

Répondre

1

Je ne pense pas que ce soit possible car il semble que authsub soit un processus différent et qu'il doive être géré séparément. Cependant, je recommande de vous authentifier à la fois en utilisant oauth en spécifiant le paramètre "scope" de la requête pour inclure à la fois l'url des contacts et celle de Gmail.

0

J'ai une question similaire - désolé d'élever un ancien fil. @benjaminlotan - vous avez dit "Cependant, je recommande de vous authentifier à la fois en utilisant oauth en spécifiant le paramètre" scope "de la requête pour inclure à la fois les contacts url et celui de gmail."

Comment exactement fait-on cela?

Code actuel est:

// Prepare the OAuth extension 
string scope = GoogleConsumer.GetScopeUri(GoogleConsumer.Applications.Contacts); 
Global.GoogleWebConsumer.AttachAuthorizationRequest(authReq, scope); 

Vous ne pouvez spécifier une portée, et je ne peux pas sembler trouver un moyen de concaténer les URIs afin que que je puisse ajouter à la GoogleConsumer.Applications.Gmail portée.

+0

désolé, compris, ils sont juste concaténés par un espace. – PaulJ

0

Voici un exemple rapide de python (vous n'avez pas écrit la langue que vous utilisiez), espérons que ça aide!

def GetAuthSubUrl(next): 
    oauthURL = urlparse(next) 
    oauthURL = oauthURL.scheme + '://' + oauthURL.netloc + oauthURL.path + "oauth" 
    scope = ['https://picasaweb.google.com/data/', 'https://www.google.com/m8/feeds/'] 
    secure = False 
    session = True 
    gd_client = gdata.photos.service.PhotosService() 
    return gd_client.GenerateAuthSubURL(oauthURL, scope, secure, session); 
Questions connexes