1*c4762a1bSJed Brown 2*c4762a1bSJed Brown /* 3*c4762a1bSJed Brown Obtains a refresh token that you can use in the future to access Google Drive from PETSc code 4*c4762a1bSJed Brown 5*c4762a1bSJed Brown Guard the refresh token like a password. 6*c4762a1bSJed Brown 7*c4762a1bSJed Brown You can run PETSc programs with -google_refresh_token XXXX where XXX is the refresh token to access your Google Drive 8*c4762a1bSJed Brown 9*c4762a1bSJed Brown */ 10*c4762a1bSJed Brown 11*c4762a1bSJed Brown #include <petscsys.h> 12*c4762a1bSJed Brown 13*c4762a1bSJed Brown int main(int argc,char **argv) 14*c4762a1bSJed Brown { 15*c4762a1bSJed Brown PetscErrorCode ierr; 16*c4762a1bSJed Brown char access_token[512],refresh_token[512]; 17*c4762a1bSJed Brown 18*c4762a1bSJed Brown ierr = PetscInitialize(&argc,&argv,NULL,NULL);if (ierr) return ierr; 19*c4762a1bSJed Brown ierr = PetscGoogleDriveAuthorize(PETSC_COMM_WORLD,access_token,refresh_token,sizeof(access_token));CHKERRQ(ierr); 20*c4762a1bSJed Brown ierr = PetscPrintf(PETSC_COMM_WORLD,"Your Refresh token is %s\n",refresh_token);CHKERRQ(ierr); 21*c4762a1bSJed Brown ierr = PetscFinalize(); 22*c4762a1bSJed Brown return ierr; 23*c4762a1bSJed Brown } 24*c4762a1bSJed Brown 25*c4762a1bSJed Brown /*TEST 26*c4762a1bSJed Brown 27*c4762a1bSJed Brown build: 28*c4762a1bSJed Brown requires: ssl 29*c4762a1bSJed Brown 30*c4762a1bSJed Brown test: 31*c4762a1bSJed Brown TODO: determine how to run this test without going through the browser 32*c4762a1bSJed Brown 33*c4762a1bSJed Brown TEST*/ 34*c4762a1bSJed Brown 35*c4762a1bSJed Brown 36