Acceso al lado del servidor con configuración de plataforma única de plataforma cruzada no clara

Tengo problemas para entender la documentación de inicio de sesión de Google+ para Android

Me gustaría apoyar "iniciar sesión con Google" con acceso al lado del servidor para su aplicación y también me gustaría apoyar el inicio de sesión único multiplataforma . Sin embargo, no está claro si realmente puedo hacer ambos ya que uno está usando GoogleApiClient.connect() y el otro, el GoogleAuthUtil.getToken() .

Si intento usar ambos, GoogleAuthUtil.getToken() para obtener un token sin conexión y GoogleApiClient.connect() para el inicio de sesión único de la plataforma cruzada, el usuario aparece dos veces con una pantalla de permisos. (También tengo que fijar dos veces la identificación del cliente del servidor y el alcance que las costuras mudo)

¿Alguna idea? ¿Estoy haciendo algo mal?

La buena noticia es que lo que le gustaría hacer es compatible!

La razón por la que está viendo la solicitud de permisos dos veces es que está resolviendo problemas del lado del cliente (problemas de GoogleApiClient.connect() ) antes de resolver los problemas del lado del servidor (problemas de GoogleAuthUtil.getToken() ).

GoogleApiClient.connect() sólo solicitará permisos si el usuario aún no ha concedido permisos a su aplicación. GoogleAuthUtil.getToken("oauth2:server:client_id:<server client-id>:api_scope:<scope1> <scope2>") solicitará permisos cada vez porque está solicitando acceso sin conexión (un token de actualización) para su servidor.

Para asegurarse de que solo vea la pantalla de permisos una vez, primero debe comprobar si su servidor necesita un token de acceso y, si no, solicitar uno con GoogleAuthUtil.getToken() (que mostrará una pantalla de permisos al usuario). Una vez que haya asegurado que su servidor tiene un token de actualización válido, puede llamar a GoogleApiClient.connect() que no mostrará una pantalla de permisos.

Ian Barber escribió una entrada en el blog explicando la manera de lograr este flujo:

http://www.riskcompletefailure.com/2013/10/google-android-client-server-sign-in.html

El post habla en términos de PlusClient que ahora está en desuso a favor de GoogleApiClient , pero el flujo sigue siendo válido.

  • Android en las donaciones de aplicaciones
  • Los archivos múltiples dex definen Lcom / google / android / gms / internal / zzau
  • Java.lang.IllegalAccessError: Method 'void android.support.v4.content
  • Firebase NullPointerException in Play Services 9.2.1
  • Servicios de Google Play para Android. Localización cliente no actualización ubicación si wifi deshabilitado
  • Detectar si otro jugador salió involuntariamente (por ejemplo, desconexión de Internet) y volver a conectar - Google play en tiempo real multijugador
  • Cómo obtener problemas de AdMobs
  • Prueba de Google Play Alpha y Beta con diferentes puntos finales o parámetros personalizados
  • El seguimiento de campañas no funciona después de pasar a Google Play Services
  • Error al iniciar sesión en los servicios de juegos de Google Play
  • Android gms: play-services: 8.1.0 DexIndexOverflowException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.