Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件上载到google驱动器问题PHP_Php_File Upload_Http Status Code 401_Google Drive Api - Fatal编程技术网

将文件上载到google驱动器问题PHP

将文件上载到google驱动器问题PHP,php,file-upload,http-status-code-401,google-drive-api,Php,File Upload,Http Status Code 401,Google Drive Api,我上传文件到Google Drive时遇到问题,无法上传文件。任何人都可以帮忙,请回答 下面是我上传文件时遇到的错误: { "error": { "errors": [ { "domain": "global", "reason": "authError", "message": "Invalid Credentials", "locationType": "header", "location": "Authorization" }

我上传文件到Google Drive时遇到问题,无法上传文件。任何人都可以帮忙,请回答

下面是我上传文件时遇到的错误:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "authError",
    "message": "Invalid Credentials",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Invalid Credentials"
 }
}
我已经向驱动器SDK注册了应用程序,并且正在使用驱动器SDK客户端ID。此外,我每次都使用数据库中保存的长期刷新令牌中更新的访问令牌

代码如下:

$fname = basename($updfile); // where $updfile is the file name with path
$turl = "https://www.googleapis.com/drive/v1/files";
$jsondata = '
{
    "title": "'.$fname.'",
    "mimeType":"application/zip",
    "description":"The mailchimp data export to google drive."
}';

$headers = 'Host: www.googleapis.com'."\r\n";
$headers .= 'Authorization: Bearer '.$access_token."\r\n";  // $access_token is token generating everytime from refresh token
$headers .= 'Content-Type: application/json'."\r\n";
$headers .='Content-Length: '.strlen($jsondata)."\r\n";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $turl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsondata);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($headers));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
如果有人对此有解决方案或建议,请回复/回答。 提前感谢。

我建议您使用并查看文档中的PHP代码片段,以了解如何将文件上载到Google Drive:

如果出于任何原因,您希望继续使用php_curl并手动构造HTTP请求,则应尝试使用发送相同的请求,并将其与您的请求进行比较。

我建议使用并检查文档中的php代码片段,以了解如何将文件上载到Google Drive:


如果出于任何原因,您希望继续使用php_curl并手动构造HTTP请求,则应尝试使用发送相同的请求,并将其与您的请求进行比较。

为什么不尝试在rest客户端中使用您的访问令牌,以查看问题是来自您的php代码还是您的访问令牌


对于Chrome,使用起来非常简单。

为什么不尝试在rest客户端中使用访问令牌,看看问题是来自PHP代码还是访问令牌


对于Chrome,使用起来非常简单。

我认为您的url不正确:

$turl=”https://www.googleapis.com/drive/v1/files";

应该是:

$turl=”https://www.googleapis.com/
上传
/drive/v1/文件”

以下是使用v2上传功能的文档(尽管很薄)。它可能比使用v1更有用,也可能不比使用v1更有用:)


我认为您的url不正确:

$turl=”https://www.googleapis.com/drive/v1/files";

应该是:

$turl=”https://www.googleapis.com/
上传
/drive/v1/文件”

以下是使用v2上传功能的文档(尽管很薄)。它可能比使用v1更有用,也可能不比使用v1更有用:)


除了您的“简单”上传示例之外,php客户端库中没有任何文档可用于执行类似操作。没有提到一个人如何使用“推荐的”可恢复上传功能。我希望谷歌能看看jQuery.com和php.net如何提供关于如何实现它们的库的文档。这就是为什么他们“只是工作”。。。谷歌只有一堆样本页面(大部分时间都不工作)和一个空的维基。更不用说你要求我们直接从主干下载,这与“发布”下载不同步。非常不专业!!除了您的“简单”上载示例之外,php客户机库没有任何文档可用于执行类似操作。没有提到一个人如何使用“推荐的”可恢复上传功能。我希望谷歌能看看jQuery.com和php.net如何提供关于如何实现它们的库的文档。这就是为什么他们“只是工作”。。。谷歌只有一堆样本页面(大部分时间都不工作)和一个空的维基。更不用说你要求我们直接从主干下载,这与“发布”下载不同步。非常不专业!!你有没有想过?你有没有想过?