La parte más difícil de la integración con Google Drive está creando una aplicación web utilizando el Consola de Google .

Está bien documentado .
Sin embargo, dado que el alcance requerido para acceder a Google Drive es más sensible que decir, Integración de hojas de cálculo de Google de JMP , la integración con Google Drive no forma parte actualmente de JMP a partir de JMP 17.
Dicho esto, me encontré con un usuario de JMP durante la reciente Descubrimiento JMP que estaba recopilando datos y almacenándolos en Google Drive. El formato de datos fue CSV por varias razones, pero principalmente debido a las limitaciones de Google Sheet. Dijo que su vida (y la de sus compañeros de trabajo) sería más fácil si pudiera ingresar los datos csv en JMP con regularidad para que pudieran analizarse. Sabía que podía descargar el archivo csv y luego importarlo a JMP, pero en realidad estaba buscando "el botón fácil".
Así que fui a revisar mis notas en Google Console y cómo registrar una aplicación web. Puede obtener fácilmente uno de desarrollador (como lo hice yo), pero Google le limitará la tasa de tráfico que tiene a menos que pase por su Proceso de verificación .
Lo cual recomiendo encarecidamente, incluso si es solo una aplicación interna.
Entonces, después de [inserte su número de horas con Google Console], tendrá las piezas necesarias para iniciar sesión en Google Drive con JMP.
- Redireccionar URL
- Identificación del cliente
- cliente_secreto
Todo lo que usó al registrar su aplicación cuando seleccionó OAuth2 autorización.
Recuerde, dado que está utilizando su aplicación, querrá asegurarse de haber habilitado las API de Google Drive.

La otra pieza importante es alcance . El ámbito controla los permisos que otorga un usuario cuando se conecta a la aplicación web registrada. Está completamente depende de las API de Google que quieras usar. Por ejemplo, el script adjunto utiliza:
Openid y Profile son "estándar" cuando autenticando y autorizando, mientras que los alcances restantes son necesarios para lee y descarga datos de tu google drive . Si todavía está leyendo, la buena noticia es que JMP Scripting Index tiene un ejemplo de autenticación con Google.

Es el segundo ejemplo en el Obtener encabezado de autorización entrada, con la que comencé cuando escribí el guión adjunto. En el script se puede ver una correspondencia uno a uno de Redireccionar URL , Identificación del cliente, cliente_secreto , etc con los atributos que tiene en su aplicación web registrada.
En el guión adjunto, agregué un elemento de limpieza adicional. Quería que la experiencia del usuario fuera, autorizar una vez y luego guardar el actualizar_token localmente, por lo que no se me pedirá que vuelva a iniciar sesión en Google. Cuando se guarda localmente, es no encriptado, por lo que querrá guardarlo en una ubicación privada. El script adjunto utiliza
- $USER_APPDATA/GoogleDriveTokens.json
Lo que esto hace es cargar el refresh_token desde el disco (si está disponible) obtiene un token_de_acceso de Google con el refresh_token, y luego estás autenticado y autorizado . Lo último que hace el script es volver a guardarlo en el disco. los Nuevo OAuth2() El objeto JSL seguirá recibiendo tokens si los actuales han expirado cada vez oauth2 << Obtener encabezado de autenticación() se usa En este caso, se llama a Obtener encabezado de autenticación cada vez que se realiza una solicitud a Google Drive.
El flujo general después ha tenido lugar la autenticación y la autorización es que el punto final

Se utiliza para enumerar los archivos que se encuentran en Google Drive. Por defecto , solamente 100 se devuelven, por lo que en el script lo aumento a 1000 (el maximo).
Vale la pena señalar que JMP 17 tiene
- solicitud << Enviar( "mostrar el progreso de la descarga" );
Esto mostrará una barra de progreso para operaciones de solicitud HTTP largas.
El regreso de la DESCANSAR la llamada es JSON , que se convierte en un matriz asociativa con ParseJON . Si tiene problemas para visualizar la estructura de datos JSON (que hago a veces), copio/pego el JSON en el Extensión del editor JSON para cromo.
A medida que el script procesa los archivos devueltos, conserva los metadatos para
La parte importante de los metadatos es la ID de archivo . Google utiliza un ID de archivo en el acceso de archivo posterior a Google Drive. En nuestro caso, queremos descargar los archivos .csv y .csv.gz y abrirlos en JMP. Entonces, el script recorre los file_ids del paso anterior y descarga los datos.

La clave para obtener el contenido del archivo es:
- Cadena de consulta(["alt" => "medios"])
Le dice a Google Drive que envíe el contenido del archivo a JMP. El script comprueba la tipo de Mimica del archivo de los metadatos del archivo, pero también podría verificar el mimeType de la solicitud HTTP.
En cualquier caso, el mimeType:
necesita ser descomprimido para obtener el contenido csv mientras mimeType
es el contenido de un archivo csv en sí mismo
Finalmente, una vez obtenidos los contenidos (y descomprimidos si es necesario)
- dt = Abrir (mancha, texto); //no es necesario guardar en el sistema de archivos antes de abrir
se encargará de abrir los datos sin paginar al sistema
Con suerte, este script será suficiente para darle una ventaja inicial en la integración con Google Drive. Lo encontré intrigante y agradezco que el cliente haya hecho la pregunta.
Por cierto, si te quedas atascado en Google Console, puedes hacer la pregunta aquí. Yo (o alguien más) podría ayudar.