将文件上载到google驱动器问题PHP
我上传文件到Google Drive时遇到问题,无法上传文件。任何人都可以帮忙,请回答 下面是我上传文件时遇到的错误:将文件上载到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" }
{
"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如何提供关于如何实现它们的库的文档。这就是为什么他们“只是工作”。。。谷歌只有一堆样本页面(大部分时间都不工作)和一个空的维基。更不用说你要求我们直接从主干下载,这与“发布”下载不同步。非常不专业!!你有没有想过?你有没有想过?