:orphan:
# PetscBoxRefresh
Get a new authorization token for accessing Box drive from PETSc from a refresh token
## Synopsis
```
PetscErrorCode PetscBoxRefresh(MPI_Comm comm, const char refresh_token[], char access_token[], char new_refresh_token[], size_t tokensize)
```
Not Collective, only the first process in the `MPI_Comm` does anything
## Input Parameters
- ***comm -*** MPI communicator
- ***refresh token -*** obtained with `PetscBoxAuthorize()`, if `NULL` PETSc will first look for one in the options data
if not found it will call `PetscBoxAuthorize()`
- ***tokensize -*** size of the output string access_token
## Output Parameters
- ***access_token -*** token that can be passed to `PetscBoxUpload()`
- ***new_refresh_token -*** the old refresh token is no longer valid, not this is different than Google where the same refresh_token is used forever
## See Also
`PetscURLShorten()`, `PetscBoxAuthorize()`, `PetscBoxUpload()`
## Level
intermediate
## Location
src/sys/webclient/box.c
## Examples
src/sys/webclient/tutorials/boxupload.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/webclient/box.c)
[Index of all Sys routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)