Есть ли способ одновременно аутентифицировать Gmail Oauth и Google Contacts API AuthSub?

Я могу получить доступ к учетной записи gmail пользователя с помощью oauth, и я могу получить доступ к контактам пользователей и их контактным группам через API контактов Google (который использует AuthSub). Для моего приложения мне нужны оба из них, есть ли способ, которым я могу аутентифицировать оба сразу, чтобы мне не требовалось, чтобы пользователи проходили два отдельных сеанса аутентификации?

Или есть способ получить доступ к контактным группам пользователя, используя только Gmail oAuth?


person benjaminlotan    schedule 19.08.2010    source источник


Ответы (3)


Я не думаю, что это возможно, потому что кажется, что authsub — это другой процесс, и его нужно обрабатывать отдельно. Тем не менее, я рекомендую пройти аутентификацию обоих сразу, используя oauth, указав параметр «scope» запроса, чтобы включить как URL-адрес контактов, так и адрес gmail.

person benjaminlotan    schedule 28.08.2010

У меня аналогичный вопрос - извините за поднятие старой темы.

@benjaminlotan - вы сказали: «Однако я рекомендую пройти аутентификацию обоих сразу, используя oauth, указав параметр «scope» запроса, чтобы включить как URL-адрес контактов, так и адрес gmail».

Как именно это сделать?

Текущий код:

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

Вы можете указать только одну область, и я не могу найти способ объединить URI, чтобы я также мог добавить GoogleConsumer.Applications.Gmail в область.

person PaulJ    schedule 30.01.2012
comment
извините, разобрался, они просто соединяются пробелом. - person PaulJ; 30.01.2012

Вот быстрый пример Python (вы не написали, какой язык вы использовали), надеюсь, это поможет!

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);
person Kristofer Källsbo    schedule 20.10.2013