Hola comunidad, tengo la siguiente duda / problema, utilizo este tutorial para enviar correos atreves de gmail, https://www.b4x.com/android/forum/threads/b4x-sending-emails-with-gmail-rest-api. 81736 / # contenido . y este ejemplo para iniciar el servicio desde otra actividad, subo archivo zip. Ahora bien, si deseo activar el servicio desde mas de una actividad, cual seria la forma correcta. El problema es que a mi me funciona todo genial pero pasado un tiempo me da un error al renovar el token y deja de funcionar. no entiendo muy bien que parte del código me da ese problema al renovar el token y que debo tener en cuenta. y también me surge la duda de si el nombre de mi paquete puede ser otro diferente al de b4a.googlecontacts de ejemplo, y como cambiarlo. gracias
Este es el error que recibo: Getting access token from refresh token...
ResponseError. Reason: , Response: {
"error": "invalid_grant",
"error_description": "Bad Request"
}
Error accessing account.
En este punto solo puedo borrar la aplicación, cambiar la clave de firma privada por la opción usar clave depurador, y de esta manera puedo aceptar los permisos de google de nuevo y vuelve a funcionar por un tiempo. Hasta que aparece este mensaje de nuevo. he estado revisando esto: https://developers.google.com/identity/protocols/oauth2/native-app pero no consigo nada claro.[/ICODE]
Hello, I am following Erel's tutorial. I have changed the client secret and id as described, google play developer is linked as shown in the picture. But when I run the client app, it does not bring the login screen , it says in the logs: Getting access token from refresh token...
Buenos dias! finalmente he conseguido renovar el token basándome en este post https://www.b4x.com/android/forum/t...ctivity-causes-a-refresh-token-problem.92563/ el problema es que yo quiero enviar el correo desde una actividad diferente a main y eso me impedía renovar el token. ahora bien si deseo enviar correos desde mas de una actividad como podria implementarlo en en el modulo starter, alguien puede ayudarme? gracias.
¿Has probado el ejemplo del tercer post del hilo que indicas? Según diceel autor:
Using Starter seems to work fine. I've attached a zip file that modifies the original Tutorial demo to show a second Emailer activity and the additions to Starter. Add the ClientID and the recipient email address in Starter. Hopefully it will help others who currently have the same problem.
Usando el servicio Starter funciona bien. Adjunto un proyecto que modifica el tutorial original para mostrar una segunda actividad y lo que hay que añadir en Starter. Añade el ClientID y la dirección del destinatario en el servicio Starter. Espero que sirva para ayudar a otros usuarios con el mismo problema.
Si José, ese ejemplo lo he probado y funciona perfecto, el token se renueva sin problema y todo va bien. pero en ese ejemplo el compañero, crea una única actividad llamada email, que es de donde el envía los correos. el primer parámetro de googleoauth2 establece el modulo de destino, Este es el módulo que recibirá todos los eventos: oauth2.Initialize(Email, "oauth2", ClientId, "https://www.googleapis.com/auth/gmail.send"). Pero y si deseo enviar los correos desde múltiples actividades, esa es mi pregunta. si alguien tiene una idea seria genial, en caso de que no sea así tratare de cambiar el diseño de la app. gracias
Y desde cada actividad que quieras enviar correo, haces:
B4X:
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
CallSub2(Starter, "Inicializa", Me)
End Sub
Sub Activity_Resume
Starter.oauth2.CallFromResume(Activity.GetStartingIntent)
End Sub
Buenas tardes José. Pues despues de mucho tiempo probando he descubierto que tenia un error en mi código. tu ejemplo que propusiste arriba lo he probado en un programa mas reducido y funciona bien. y tambien he estado aprendiendo B4Xpages, para usarlo en próximos proyectos. muchas gracias lo doy por solucionado.