在新文件夹中创建文件

I am trying to create a folder and then pass the ID of that folder to new file I'm creating as parent.

I am having two problem there.

1 - It creates two files. One inside root folder and another in newly created folder.

2 - It does not return the webViewLink even if the file/folder is publicly share and available to everyone. Here's the code i'm using:

function createPublicFolder($service, $folderName) {
  $file = new Google_DriveFile();
  $file->setTitle($folderName);
  $file->setMimeType('application/vnd.google-apps.folder');

  $createdFile = $service->files->insert($file, array(
      'mimeType' => 'application/vnd.google-apps.folder',
  ));

  $permission = new Google_Permission();
  $permission->setValue('');
  $permission->setType('anyone');
  $permission->setRole('reader');

 $service->permissions->insert(
      $createdFile['id'], $permission);

  return $createdFile;
}

function insertFileIntoFolder($service, $folderId, $fileId) {
    $newParent = new Google_ParentReference();
    $newParent->setId($folderId);
     try {
        return $service->parents->insert($fileId, $newParent);
    } catch (Exception $e) {
        print "An error occurred: " . $e->getMessage();
    }
    return NULL;
}



$mainFolder = createPublicFolder($service,'New Folder');
            echo isset($mainFolder['webViewLink']) ? $mainFolder['webViewLink'] : 'Not found.';

            $file = new Google_DriveFile();
            $file->setTitle('My document');
            $file->setDescription('A test document');
            $file->setMimeType('text/plain');

            $data = file_get_contents('file.txt');

            $createdFile = $service->files->insert($file, array(
                  'data' => $data,
                  'mimeType' => 'text/plain',
                ));
            insertFileIntoFolder($service,$mainfolder['main_folder'],$createdFile['id']);
            echo isset($createdFile['webViewLink']) ? $createdFile['webViewLink'] : 'Not found.';