Si quieres crer una cuenta y un proyecto para poder acceder a esos APIs de Google, lo primero es acceder a Google Cloud Platform y crear una cuenta, o mejor dicho, activarla con Google Cloud.
Una vez que tengas la cuenta, tendrás que crear un proyecto y configurarlo para que pueda acceder a esas APIs.
En este tutorial te explico paso a paso cómo hacerlo, y con un montón de capturas para que no te líes y yo no me olvide de contarte los paso, que todo hay que decirlo. 🙂
Nota: Por ahora te voy dejar las capturas y en otra ocasión, si hace falta, te explico lo que cada captura significa. Es que quiero pasar a mostrarte el código para acceder al API de People (contactos) que ya lo tengo hecho tanto con C# como con Visual Basic.
Figura 1. Crear un nuevo proyecto
Figura 2.
Figura 3.
Figura 4.
Figura 5.
Figura 6. En la ficha G Suite están las de Docs API y drive API
Figura 7. Tienes que elegir y habilitar una por una.
Figura 8.
Figura 9. Añadir más librerías (bibliotecas)
Figura 10. Elige People API. No elijas Contacts API, que aparte de estar obsoleta, no vale para nada…
Figura 11. Esta es la parte más importnte, sin la autorización OAuth no podrás acceder a nada.
Figura 12. Siempre debe ser External
Figura 13.
Figura 14.
Figura 15. Añadir las características que tu aplicación usará de cada API que has añadido.
Figura 16.
Figura 17.
Nota: Los permisos debes ir probándolos a ver qué error te da, según lo que quieras hacer. Pero básicamente necesitas acceso de lectura, salvo que quieras modificar un contacto, un documento o algún fichero del Drive.
Figura 18. No te olvides de darle a UPDATE ya que al estar tan abajo en la pantalla emergente ni se ve, y so no le das a Update, no se guardan los cambios.
Figura 19.
Figura 20.
Figura 21. Aquí tienes que añadir los usuarios autorizados para que usen la aplicación. El máximo es 100 y una vez que aades uno, ya no lo puedes eliminar.
Figura 22.
Figura 23. Los tipos de credenciales que crearemos
Figura 24.
Figura 25. Estas so las APIs que usaremos con este proyecto.
Figura 26. El tipo de aplicación que vamos a crear.
Figura 27.
Figura 28. Estas son las dos claves que necesitarás en tu código
Figura 29.
Figura 30.
Figura 31. Si no hs copiado las credenciales de acceso, descarga el fichero .json y ahí las tienes.
Pues esto es todo lo que debes saber para crear un proyecto. En la siguiente entrega voy a mostrarte el código de una aplicación de consola para acceder a los contactos (People API). Sí, en C# y en VB.
Pues eso… que como yo me he encontrado con problemas a la hora de implementar las APIs de Google y de encontrar ejemplos (que de haberlos solo eran para C#), me he decido a escribir esta especie de tutorial para poder acceder a las siguientes APIs de Google: Drive, Docs y People. Es decir, poder manipular el contenido de Google Drive, los documentos y los contactos de Google que están asociados tu cuenta (o la cuenta que decidas usar) de GMail.
Lo primero que necesitas (salvo que uses las que yo voy a crear para este tutorial) es crearte una cuenta en Google Cloud Platform, es gratuito al menos sino usas recursos que son de pago. La cuenta a usar será la que tengas ya de GMail o bien puedes crear una nueva cuenta y asociarla con Google Cloud.
Cuandoi asocias una cuenta por primera vez, te darán una oferta de 300$ (US $) para que pruebes de forma gratuita los recursos de pago (siempre que no te pases de esos 300 dólares). Pero como te digo, para las cosas que te voy a explicar no te hace falta.
Por ahora me voy a saltar el paso de crear tus propios poyectos en Google Cloud, eso lo dejaré para el final (salvo que cambie de opinión), lo que sí te digo es que si quieres utilizar los ejemplos que te voy a mostrar usando mis claves o las que yo indique en el código) antes debes decírmelo para poder añadir tu correo de GMail a los usuarios que pueden usar esas claves.
Esto ultimo lo puedes hacer dejando un comentario en este mismo post y yo te agregaré, esto puede que no lo haga pasado unos meses, ya que solo quiero que la gente lo pruebe en este tiempo reciente, mientras publico los tutoriales. Y dejando, como mucho, unos tres meses de desde la publicación original, así que… si estás leyendo este tutorial después del 15 de marzo de 2021, es posible que o bien no admita más usuarios o simplemente que no lo siga «soportando», además de que hay un límite de 100 usuarios por proyecto, y si ya están esos usuarios registrados con la aplciación, es posible que, incluso antes del 15 de marzo del 2021 no pueda admitir más usuarios.
Dicho esto, empecemos.
Nota: Los ejemplos los voy a hacer con .NET 5.0.1 pero son válidos para .NET Framework v4.5 y superiores, .NET Standard y .NET Core.
Crear un proyecto en C# o Visual Basic
Crea un proyecto de consola para C# o VB y ve a Tools>NuGet Package Manager>Manage NuGet Packages for Solution… (en español es: Herramientas>Administrador de paquetes NuGet>Administrar paquetes NuGet para la solución…)
Busca y añade los siguientes paquetes de NuGet (entre paréntesis te indico las versiones que estoy usando al escribir este tutorial):
Nota: Los enlaces son por si quieres ir a la página de NuGet y descargarlas desde allí o ver cómo instalarlas según estés usando Visual Studio 2019 o Visual Studio Code o simplemente creando los proyectos desde la consola con dotnet. Eso sí, necesitarás tener instlado el SDK de dotnet 5 para poder compilar el código.
Entrega 3: Código para acceder a los documentos con Drive API y Docs API
Entrega 4: Código para crear un documento con Docs API
Nota: Voy a publicar ahora este post mientras creo el protyecto de prueba, escribo el código, lo convierto de C# a VB (ya tengo código escrito en C#) y lo publico, así podrás solicitar tu «permiso» para usar estos ejemplos con mi ID y clave secreta (que después de publicarla no será tan secreta 😉 )
Pues eso… estoy pensando darle al programa más opciones para indicar dónde se guardarán las notas, actualmente se guardan en un fichero de texto en la carpeta documentos del usuario activo. Con lo cual no estarían esas notas disponibles en otro equipo distinto del que se usó para crearlas. Salvo que copies ese fichero y te lo lleves contigo… pero eso, creo que está demostrado que no es muy fiable, sobre todo para gente como yo que, en mi caso, soy más despistado que… en fin… que seguro que me cargaría alguna nota por olvidarme de actualizar el fichero en alguno de los ordenadores a los que me lo llevara… y según la ley de San Murphy, seguro que la nota que perdería sería la que más me interesaría mantener… ¿A ti también te ha pasado? pues ya sabes… sigue leyendo 😉
Guardar las notas en la nube (un sitio de Internet)
Te decía que estoy barajando la posibilidad de almacenar las notas «en la nube», concretamente en el Drive de Google, pero en tu Drive, ni en el mío… bueno, mis notas estarían en el Drive de mi cuenta de gmail, las tuyas en el Drive de tu cuenta de gmail y las de Pepito, en el Drive de la cuenta de gmail de Pepito, y así sucesivamente.
El problema de esta opción es que solo tengo disponibles unas 90 cuentas que asignar, es decir, 90 usuarios podrían beneficiarse de esa opción de guardar las notas en Google Drive.
Seguramente no habrá tantas peticiones, pero… nunca se sabe…jajaja.
¿Por qué 90 usuarios?
Porque para cada aplicación (o proyecto) que se crea en la nube de Google (Google Cloud Platform) te da la opción de permitir hasta 100 usuarios, y de esos 100 yo me reservo al menos 10, por si se lo ofrezco a algunos de los currantes de la empresa de los kayaks en la que trabajo actualmente (Maro – Kayak Nerja).
¿Por qué hay que configurar una cuenta?
Porque si un usuario (cuenta de gmail) no está registrado en el proyecto, no podrá usar su cuenta de correo para acceder al Drive.
El mensaje de error es el mostrado en la figura 1.
Figura 1. Error al intentar acceder con una cuenta de gmail no configurada.
Nota: Repito lo de «cuenta de GMAIL» porque solo se pueden usar cuentas de gmail, al menos a mí no me ha dejado definir otra cuenta de otro servidor, por ejemplo Outlook.com.
Otras opciones para tener las notas en la nube
Otra opción sería crear una base de datos en el hosting donde tengo mis sitios alojados y sería menos problemático, ya que ahí no habría límite de usuarios, pero… no me mola esa opción.
¿Por qué en documentos de Google Drive?
La idea era hacerlo con las notas de Google, (Keep) pero para esa aplicación no existen APIs con las que se puedan acceder, así que… me decidí por usar los documentos, ya que, al menos para mí, es más cómodo de leer, imprimir, etc.
Nota del 20-oct-22: He entrado en las APIs de Google y resulta que ya hay una API para las notas de KEEP. Tendré que probarla a ver si la puedo usar en el nuevo proyecto que estoy preparando ahora usando .NET 6 (antes era .NET Framework) y con la nueva versión para móvil (aún pendiente, aunque en la que ya creé en su día no creo que implemente lo de KEEP, si es que llego a implementarlo).
¿Y de la privacidad qué?
Si no te animas porque yo vaya a fisgonear en tus documentos o en tu Drive, no te preocupes que aunque tenga acceso para muchas cosas (tengo que poder crear y eliminar ficheros y carpetas en Drive), no haré nada que no sea solo para gestionar las notas, además de que todo lo que se guarde o se elimine, si esa opción la marcas cuando esté listo todo esto, solo lo hará en la carpeta gsNotas que se creará en Drive, y dentro de esa carpeta habrá una carpeta por cada grupo de notas que vayas creando.
Lo de poner como opcional el que se borren las notas sustituidas es porque cada vez que se crea un documento en Drive, aunque ya exista el mismo nombre del documento, se mantienen copias independientes, de esa forma puedes tener una especie de copia de seguridad de cada nota. Así que… si no quieres que haya muchos ficheros repetidos, podrás marcarla opción de borrar la nota antes de guardar o no… pero, como siempre, eso será cosa tuya 😉
Volviendo a la petición de guardar las notas en la nube…
Así que… si quieres que te incluya en la lista, escribe por aquí (en los comentarios) que estás interesado en que ta añada a los que pueden guardar las notas en Google Drive.
En el comentario no es necesario que indiques tu cuenta de correo, ya que para poder escribir un comentario tienes que indicar tu cuenta de correo (aunque no se muestra), así que… más fácil imposible… eso sí, en la cuenta de correo que uses para escribir el comentario/petición debes usar una cuenta de gmail que sea tuya (que tú tengas acceso).
Si, de casualidad, hubiese más de las 90 peticiones, ya me las ingeniaré para poder tener otras 100 más… aunque creo que sin pagar (yo a Google) no se podrá hacer. 😉
Ah, y esto no te va a costar nada… ni siquiera te voy a pedir que hagas un donativo con PayPal… ¡anda! ya lo he dicho… jajajaja pero no es obligatorio, aunque no estaría mal, que hasta el mes de junio o julio no tengo trabajo con lo de los kayak/piraguas 😉