如何 json 在 PHP 中使用 Google 驱动器 API 对 foreach 进行编码

How to json encode foreach in PHP with Google Drive API

我在使用 ajax 和将 foreach 与 google 驱动器 api

一起使用时遇到问题

PHP:

$(document).ready(function(){
$("#example").on('click', '.checklist', function(e) { 
    e.preventDefault();
    var id2 = e.target.getAttribute('data-id'); 
    
    
    $('.filelist').DataTable({
        destroy : true,
        "ajax": {
            "url": "get_files_json.php", 
            "type" : "POST",
            "data": { 'folder_id': id2 },
            "dataSrc": ""    
        },
        "columns": [
            { "data": "id_folder" }
        ],
        "order": [
        [ 0, 'asc' ]
        
        ]           
    });
  });
});

JSON 文件:

$client = new Google_Client();
$client->setApplicationName('Google Drive API PHP Quickstart');
$client->setAuthConfig('gdrive/json/'. $_SESSION['json'] . '.json');
$client->setScopes(Google_Service_Drive::DRIVE);
$client->setSubject($_SESSION['json_email']);
$client->setAccessType('offline');  
$service = new Google_Service_Drive($GLOBALS['client']);
                        
        $idfolder = $_POST['folder_id'];
        $parameters2['pageSize'] = 1000;
        $parameters2['orderBy'] = "modifiedTime desc";
        $parameters2['q'] = "mimeType!='application/vnd.google-apps.folder' and '$idfolder' in parents";
        $parameters2['fields'] = 'files(id, name, modifiedTime, mimeType,size,webContentLink,webViewLink), nextPageToken'; 
        $sub_files = $service->files->listFiles($parameters2);
            
$data = array(); //create empty array

   foreach($sub_files as $kk => $sub_file) {

     $data[] = array(
            "id_folder" => $sub_file['name']
        );//assign each sub-array to the newly created array
  } 
 echo json_encode($data);

错误信息:

“DataTables 警告:table id=filelist - 无效 JSON 响应。有关此错误的更多信息”

显然,经过数小时的尝试和测试,我找到了解决方案。

我刚放

   @ 

在我的

   $sub_files

变量

答案:

   @$sub_files = $service->files->listFiles($parameters2);