谷歌驱动器垃圾清理使用Php不工作

谷歌驱动器垃圾清理使用Php不工作,php,curl,google-api,google-drive-api,Php,Curl,Google Api,Google Drive Api,我正在尝试使用php和驱动api v3清除垃圾。代码执行时没有错误,但不会删除驱动器中的垃圾。这是我的代码,请帮我解决这个问题。谢谢你抽出时间 if($_POST['trash']) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files/trash?key='.$token.'"); curl_setopt($ch,

我正在尝试使用php和驱动api v3清除垃圾。代码执行时没有错误,但不会删除驱动器中的垃圾。这是我的代码,请帮我解决这个问题。谢谢你抽出时间

if($_POST['trash']) { 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files/trash?key='.$token.'");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-type: application/json',
        'Authorization: Bearer ' . $token
    ));
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    
};

我相信你的目标和现状如下

  • 您希望使用php的curl在驱动器APIv3中使用“Files:emptyTrash”
  • 您的
    $token
    访问令牌可用于使用此API
为了实现您的目标,下面的修改如何

发件人: 致: 注:
  • 在“Files:emptyTrash”中,不返回任何值
  • 如果脚本中的
    $token
    是API密钥,而不是访问令牌,请检索访问令牌并使用它。请小心这个
参考:

我试过了,但结果还是一样。没有从垃圾箱中删除任何内容。@xcoders感谢您的回复。给您带来不便,我深表歉意。在我的环境中,当对修改后的脚本使用正确的访问令牌时,我可以确认脚本工作正常。所以我不能复制你的情况。这是因为我的技术差。我为此道歉。因此,当
echo curl_错误($ch)时放在
curl\u close($ch)之前,您将获得什么结果?@xcoders感谢您的回复。给您带来不便,我深表歉意。不幸的是,我无法复制你的情况。我再次为此道歉。在您的情况下,
if($\u POST['trash']){
true
,并且
$token
是在驱动器API中使用“Files:emptyTrash”的有效访问令牌?是的访问令牌有效。
if($\u POST['trash'])
不为空且为真。@xcoders感谢您的回复。不幸的是,从您的回复中,我无法复制您的情况。当我测试您的脚本时,我可以确认出现了相同的问题。在URL
中发现的
非法字符错误发生。当我测试修改后的脚本时,我可以确认垃圾箱变为空,没有错误。因此,很遗憾,我无法复制您的情况。在您的情况下,您是否正在测试修改后脚本的简单脚本?如果您正在测试您的脚本(包括其他脚本),是否可以使用简单脚本对其进行测试?这个如何?如果要传递访问令牌,则密钥用于API密钥而不是访问令牌您将使用的查询字符串?access\u token=.$token。请编辑您的问题并包含创建标记的代码。@daimt感谢您的评论。在我的建议中,我建议使用access token作为请求标头,而不是查询参数。我知道在当前阶段,
access\t的查询参数oken
可用于“文件:emptyTrash”的方法在驱动器API中。我可以问一下我提案中的问题吗?我想从这个问题开始研究。请编辑您的问题,并包括您用于创建此令牌的代码。最好将其作为授权标头传递。Google正在避免在查询字符串中传递访问令牌。您是否已进行了检查以检查垃圾的令牌当前用户的tatus?请不要使用不相关的标记-这个问题与cURL本身无关,即使您正在使用它
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files/trash?key='.$token.'");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
    'Authorization: Bearer ' . $token
));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v3/files/trash");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $token));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);