【问题标题】:Google drive api folder permissions谷歌驱动api文件夹权限
【发布时间】:2018-11-12 14:28:52
【问题描述】:

我对 google drive api v3 有疑问。 我举了谷歌的例子,我试过了。我可以读取文件夹内容,但我没有对文件夹权限进行任何操作。

我收到错误 403,“权限不足”。 我无法创建或读取文件夹的所有权限。

<?php
require_once __DIR__.'/vendor/autoload.php';

$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->addScope(Google_Service_Drive::DRIVE);
$client->setAccessType('offline');

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
    $client->setAccessToken($_SESSION['access_token']);
    $drive = new Google_Service_Drive($client);

    $folderId = '1_ip3-WUs4F6atNdElJ3KHccAV4lI0nLL';

    $optParams = array(
        'pageSize' => 100,
        'fields' => "nextPageToken, files(id,name)",
        'q' => "'".$folderId."' in parents"
        );

    $results = $drive->files->listFiles($optParams);

    if (count($results->getFiles()) != 0) {
        foreach ($results->getFiles() as $file) {
            echo "Id: " . $file->getId() . "  Name: " . $file->getName() . "<br>";
        }
    }   

} else {
    $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

//+!+!+!+!+!+!+!+!+!+! Next code doesn't WORK  !+!+!+!+!+!+!+!+!+!+!+!+!+!+!+!+!+!//

$fileId = '1UXSg5W-XIX82izGK8uEXXWPUCLcDGRa1';

$userPermission = new Google_Service_Drive_Permission(array(
    'type' => 'user',
    'role' => 'reader',
    'emailAddress' => 'email@gmail.com'
    ));

$request = $drive->permissions->create($fileId, $userPermission, array('fields' => 'id'));
echo $request; 

?>

【问题讨论】:

    标签: google-api google-drive-api


    【解决方案1】:

    可能是创建文件夹时设置了错误的权限,即使您说您什么也没做。我这里没有看到创建文件夹的代码,只是一个ID,表示文件夹已经创建好了。

    我建议先尝试使用Drive.Permissions.List 列出权限。特别是查看typeroleteamDrivePermissionDetails[].role 属性。请参阅permissions guide,了解每个角色或类型可以执行的操作。如果需要,您还可以访问managing sharing 上的此文档。

    【讨论】:

    • 也许还值得看看项目的范围。您是否获得了足够的项目范围权限供 API 访问。考虑将“googleapis.com/auth/drive”添加到 OAUTH 范围
    • 也许这是问题的原因。我已经更改了项目的范围,现在我必须等待几天才能检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多