/**
  * Create a SharePoint Form Digest
  *
  * @static
  * @access  public
  * @param   SPSite $site  SharePoint List
  * @param   array  $extra Extra SharePoint Form Digest properties to map
  * @throws  SPException
  * @return  SPFormDigest
  */
 public static function create(SPSite $site, array $extra = [])
 {
     $json = $site->request('_api/contextinfo', ['headers' => ['Authorization' => 'Bearer ' . $site->getSPAccessToken(), 'Accept' => 'application/json']], 'POST');
     return new static($json, $extra);
 }
 /**
  * Get a SharePoint File by Relative URL
  *
  * @static
  * @access  public
  * @param   SPSite $site        SharePoint Site
  * @param   string $relativeUrl SharePoint Folder relative URL
  * @param   array  $extra       Extra properties to map
  * @throws  SPException
  * @return  SPFile
  */
 public static function getByRelativeUrl(SPSite $site, $relativeUrl, array $extra = [])
 {
     $json = $site->request("_api/web/GetFileByServerRelativeUrl('" . $relativeUrl . "')", ['headers' => ['Authorization' => 'Bearer ' . $site->getSPAccessToken(), 'Accept' => 'application/json'], 'query' => ['$expand' => 'ListItemAllFields,Author']]);
     $folder = SPFolder::getByRelativeUrl($site, dirname($relativeUrl));
     return new static($folder, $json, $extra);
 }
 /**
  * {@inheritdoc}
  */
 public function getSPAccessToken()
 {
     return $this->site->getSPAccessToken();
 }