: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
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/webclient/box.c.html#PetscBoxRefresh">src/sys/webclient/box.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/webclient/tutorials/boxupload.c.html">src/sys/webclient/tutorials/boxupload.c</A><BR>


---
[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)  
