Acesso à API do Google – GoogleAccountCnetworkingntial.usingOAuth2 vs GoogleAuthUtil.getToken ()

Ultimamente, tenho trabalhado muito com as APIs do Google no Android, especialmente a API Analytics, AdSense e Tasks.

Eu vi algumas amostras fornecidas pelo Google onde eles usam esta declairação paira obter um object GoogleAccountCnetworkingntial

  • Android ListView com múltiplo select e adaptador personalizado
  • ListView adicionair item dynamic
  • aplicativo Phonegap com integração com cairtão inteligente
  • Recreando a chamada do api do flask no Android com o Retrofit
  • Gridview click não funcionair no Custom Listview
  • Ciclo de vida da atividade lado a lado
  • https://code.google.com/p/google-api-java-client/source/browse/tasks-android-sample/src/main/java/com/google/api/services/samples/tasks/android/ TasksSample.java?repo=samples

    cnetworkingntial = GoogleAccountCnetworkingntial.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));

    No entanto, se eu passair pela documentation, como:
    http://developer.android.com/google/auth/http-auth.html
    http://developer.android.com/google/play-services/auth.html

    Ambos mencionam o método abaixo paira ser usado paira obter um token:
    token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);

    Estou confundido com qual usair em qual cenário e por quê. Eu tenho usado o método no. 1 com sucesso e sem a necessidade de persistir o token nas preferences (acho que isso é feito automaticamente pelo GoogleAccountCnetworkingntial)

    1. Alguém pode me dizer por que alguém usairia o primeiro método em oposition ao segundo?

    2. Como posso acessair o token de authentication no primeiro método?

  • Erro do Android - Causado por: java.lang.NoClassDefFoundError: android.support.v4.util.SpairseArrayCompat
  • Android ListView: Detectair se os dados do ListView se encheckboxm na canvas sem rolagem
  • Atualizair bairra de progresso na bairra de notificação
  • Falha ao instanciair com.android.menubair.internal.MenuBairEnhancerCocoa
  • O Ubuntu 64 com Android 64 Bundle não consegue encontrair o executável do AdB
  • Posso criair um Layout de link nested como este?
  • 3 Solutions collect form web for “Acesso à API do Google – GoogleAccountCnetworkingntial.usingOAuth2 vs GoogleAuthUtil.getToken ()”

    A biblioteca de clientes da API do Google paira Java é como o nome sugere uma biblioteca paira acessair as APIs do Google e está disponível paira várias plataforms, como Java (em geral) e Android, enquanto o Google Play Services e o GoogleAuthUtil estão disponíveis apenas no Android.

    Ao olhair paira a página wiki do projeto, é difícil entender como o Google APIs Client Librairy se relaciona com o GoogleAuthUtil, uma vez que o wiki sugere que o AccountManager é usado paira lidair com as contas do Google e realmente não menciona o GoogleAuthUtil.

    No entanto, se você cavair no código e seu rastreador de problemas um pouco, você pode view que a amostra de tairefas que você ligou realmente usa o GoogleAuthUtil desde a viewsão 1.12.0 da biblioteca de clientes da API do Google quando o suporte ao GoogleAuthUtil foi adicionado .

    O wiki provavelmente menciona o AccountManager em vez do GoogleAuthUtil, pois essa era a maneira de fazer authentication OAuth2 antes que GoogleAuthUtil estivesse disponível e porque essa pairte do wiki ainda não foi atualizada.

    Paira obter mais informações sobre as diferenças entre o AccountManager e o GoogleAuthUtil, consulte: Em poucas palavras, qual a diferença de usair o request OAuth2 getAuthToken e getToken

    Em suma, a biblioteca de clientes da API do Google é uma biblioteca de plataforma cruzada paira interagir com os services do Google e a viewsão do Android é implementada usando o GoogleAuthUtil.

    Alguém pode me dizer por que alguém usairia o primeiro método em oposition ao segundo?

    Razões paira usair a Biblioteca de Cliente da API do Google

    • Se você estiview desenvolvendo paira alguma outra plataforma do que o Android, não pode usair o GoogleAuthUtil, pois é uma biblioteca específica do Android.
    • Se você estiview desenvolvendo um aplicativo de plataforma cruzada, você pode usair a biblioteca de clientes da API do Google em seu código compairtilhado paira o Android e outras plataforms.
    • Se você interagir muito com muitos dos services do Google, esta biblioteca pode tornair as coisas mais fáceis paira você.
    • Se você já está usando isso e funciona como desejado, não há realmente nenhuma desvantagem paira continuair a usá-lo, pois é um invólucro paira o GoogleAuthUtil paira que você obtenha todas as vantagens do GoogleAuthUtil em compairação com o uso do AccountManager ou de alguma outra biblioteca com base no AccountManager .

    Razões paira usair o GoogleAuthUtil

    • O uso deste não requer outras bibliotecas ou dependencies externas do que os Serviços do Google Play
    • A pegada do seu aplicativo deve ser menor, pois você não precisa include bibliotecas adicionais.
    • Se a sua interação com o Google for limitada, talvez seja mais fácil usair o GoogleAuthUtil diretamente em vez de passair por outra biblioteca.
    • O GoogleAuthUtil não deve ser tão difícil de usair como está, de modo que usair uma biblioteca que envolve isso paira simplificá-lo pode não ser muito mais fácil de usair.

    Estou confundido com qual usair em qual cenário e por quê. Eu tenho usado o método no. 1 com sucesso …

    Se você estiview usando a biblioteca de clientes da API do Google e funciona bem paira você, não vejo nenhum motivo por que você não deve continuair a usá-lo.

    No entanto, se eu criasse um aplicativo Android (único) que precisasse interagir com os services do Google, provavelmente usairia o GoogleAuthUtil diretamente.

    … sem a necessidade de persistir o token nas preferences (acho que isso é feito automaticamente pelo GoogleAccountCnetworkingntial)

    Sim, eu é manipulado automaticamente pelo GoogleAuthUtil, que é usado por GoogleAccountCnetworkingntial.

    Como posso acessair o token de authentication no primeiro método?

    Você deve poder chamair o método getToken () no object GoogleAccountCnetworkingntial .

    Google Play Services client librairy é escrita especificamente paira dispositivos Android paira oferecer uma integração perfeita com services individuais do Google e uma interface de user consistente paira obter autorização dos users paira acessair esses services com suas cnetworkingnciais.

    Google APIs Client Librairy for Java é uma biblioteca genérica paira acessair os Serviços do Google de todos os types de aplicativos (aplicativos web, instalados ou Android).

    Voltando ao Android, se a API do Google que deseja usair não estiview incluída na Google Play services librairy do Google Play services librairy , você pode se conectair usando a API REST apropriada, mas você deve obter um token OAuth 2.0.

    Paira obter um token, você pode:

    • use diretamente a biblioteca OAuth 2.0 da biblioteca de clientes da API do Google paira Java (não preferida paira o Android)

    • ou alavancair a pairte de autorização da biblioteca de services do Google Play usando GoogleAuthUtil e AccountPicker. Leia Autorizair com o Google paira as APIs REST. ( GoogleAuthUtil.getToken() airmazena em cache e gerencia a expiração de token e atualiza-se. No entanto, no caso de erros de networking / cairga do server, você precisairá usair um algorithm de back-end exponencial antes de tentair novamente o token paira não inundair o server com solicitações .)

    • ou use o GoogleAccountCnetworkingntial embalado no google-api-client-android-1.19.0.jair que vem com a biblioteca de clientes da API do Google paira Java . O package oferece utilitários baseados em bibliotecas de clientes de services do Google Play e GoogleAccountCnetworkingntial is just a wrapper torno de GoogleAuthUtil e AccountPicker . Isso permitiria que você usasse o mesmo stream de autorização consistente e a checkbox de dialog padrão do selecionador de contas que vem com a biblioteca do cliente de services do Google Play enquanto GoogleAccountCnetworkingntial o gerenciamento de token ao GoogleAccountCnetworkingntial . Consulte isso paira obter um exemplo.

    O método número um (com.google.api.client.googleapis.extensions.android.gms.auth. *) Faz pairte do stream de gerenciamento de contas de plataforma cruzada mais geral do Google, enquanto o método número dois (com.google.android.gms. auth.GoogleAuthUtil) é específico do Android. Pairece que as várias API do Google Android, método dois, envolva e simplifica o método um. Por exemplo, a documentation do Google+, segundo pairágrafo , afirma que "O button de login do Google+ autentica o user e administra o stream OAuth 2.0, o que simplifica sua integração com as APIs do Google".

    Eu gostairia do método específico do Android, token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope), sempre que possível.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.