2013-09-19 4 views
0

Я совершенно новичок в среде Box. Я использую текущий код для отображения всех изображений в веб-каталоге на сайте с новейшими файлами перечисленных первым:Показать все файлы изображений в папке Box через PHP

<?php 
    $path = 'images/'; 
    $files = scandir($path); 
    $ignore = array('cgi-bin', '.', '..'); 

    # remove ignored files 
    $files = array_filter($files, function($file) use ($ignore) {return !in_array($file, $ignore);}); 

    # get the modification time for each file 
    $times = array_map(function($file) use ($path) {return filemtime("$path/$file");}, $files); 

    # sort the times array while sorting the files array as well 
    array_multisort($times, SORT_DESC, SORT_NUMERIC, $files); 

    foreach ($files as $file) { 
     echo '<div class="item">'; 
     echo '<a title="&copy;2013" rel="gallery" class="fancybox" href="images/'.$file.'"><img src="images/'.$file.'" alt="'.$image.'" /></a>'; 
     echo '</div>'; 
    } 
?> 

Я хотел бы интегрировать API Box, чтобы получить файлы из моей папки Box вместо веб-папке. Возможно ли это с текущим API? Я попытался отобразить содержимое папки открытого доступа со следующим:

<?php 
    $params = array(); 
    $params['shared_link'] = array("access"=> "Open"); 
    $params = json_encode($params); 
    echo $params; 
    $key = "[my api key]"; 
    $token = "[token]"; 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, "https://api.box.com/2.0/folders/kvpemb6rgohhr448r935"); //my box folder 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', "-H Authorization: Bearer $key",'Content-Length: ' . strlen($params), 'X-HTTP-Method-Override: GET')); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    print_r($result); 
?> 

Но получить только массив значений "{"shared_link":{"access":"Open"}}" на этой странице.

Я исчерпал свою способность поиска в Google и Stackoverflow и не сталкивался нитью, пытающейся выполнить эту задачу. Спасибо за любое руководство/помощь.

ответ

0

Здесь, может быть, это поможет вам:

function getPictures($folderid, $access_token){ 
    //===================== Default cUrl options ================= 
    $options = array(
     CURLOPT_SSL_VERIFYPEER => false, 
     CURLOPT_VERBOSE  => true, 
     CURLOPT_HEADER   => false, 
     CURLINFO_HEADER_OUT => false, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_FOLLOWLOCATION => false, 
    ); 
    $options[CURLOPT_HTTPHEADER] = array ("Authorization: Bearer ".$access_token); 

    //======================= Proper url ========================== 
    $url = "https://api.box.com/2.0/folders/{$folderid}/items"; 

    //======================= cUrl call =========================== 
    $ch = curl_init($url); 
    curl_setopt_array($ch, $options); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    $result = json_decode($result, true); 

    // =============== Loop over items to search for photos ================= 
    $rez = array(); 
    if (isset($result['total_count']) && $result['total_count'] > 0){ 
     foreach ($result['entries'] as $elements){ 
      if (isPic($elements['name'])) $rez[] = $elements['name']; 
     } 
    } 

    return $rez; 
} 

function isPic($value){ 
    $value = explode('.', $value); 
    if (count($value) < 2) return false; 
    $extensions = array ('jpg', 'bmp', 'png', 'gif'); 
    return in_array($value[1], $extensions); 
} 

Полезные ссылки от Box.com API:

http://developers.box.com/docs/#folders-retrieve-a-folders-items

или

http://developers.box.com/docs/#search

 Смежные вопросы

  • Нет связанных вопросов^_^