Php 是否可以允许站点';允许任何注册用户或恶意用户将文件上载到我的谷歌硬盘

Php 是否可以允许站点';允许任何注册用户或恶意用户将文件上载到我的谷歌硬盘,php,google-drive-api,google-oauth,Php,Google Drive Api,Google Oauth,我读过这篇文章: 我发现这是可能的,尽管我因此决定不使用服务帐户,而是使用我自己的谷歌帐户的驱动器空间 然而,我发现很难理解实现这一目标的确切步骤。我阅读了来自谷歌的OAuth2.0、驱动API和cros上传示例 但我真的不知道如何继续上传到我的驱动器,而不是当用户登录谷歌+,然后它变成上传到自己的驱动器 我想知道是否有人知道我应该获得的确切知识,以及实现此上传文件所需的步骤和实现,该上传文件来自任何注册用户,并使用驱动API将其上传到我的谷歌硬盘。我使用PHP作为后端,AngularJS作为前

我读过这篇文章:

我发现这是可能的,尽管我因此决定不使用服务帐户,而是使用我自己的谷歌帐户的驱动器空间

然而,我发现很难理解实现这一目标的确切步骤。我阅读了来自谷歌的OAuth2.0、驱动API和cros上传示例

但我真的不知道如何继续上传到我的驱动器,而不是当用户登录谷歌+,然后它变成上传到自己的驱动器

我想知道是否有人知道我应该获得的确切知识,以及实现此上传文件所需的步骤和实现,该上传文件来自任何注册用户,并使用驱动API将其上传到我的谷歌硬盘。我使用PHP作为后端,AngularJS作为前端。所以,如果这使得使用任何一种方法或现有库(除了驱动器的文档之外,我找不到其他库)变得更容易的话,这将是理想的,但是构建一个库的步骤也会很好

更详细地说,在我在上面展示的帖子中,第二个答案的短语是
“进行一次性身份验证以获得一个刷新令牌,您将存储该令牌。然后您可以随时使用该令牌生成调用实际驱动器API所需的访问令牌。您可以使用Oauth Playerd生成刷新令牌,因此无需编写任何代码。”
get me真的不清楚具体涉及的步骤以及我实际应该使用的api来实现它


谢谢

要将文件发送到Google Drive,您需要一个访问令牌来使用驱动器用户的存储,该令牌在创建后几分钟内过期

要创建访问令牌,您需要一个不会过期的刷新令牌。这是做到这一点的关键

下面是一个使用PHP api的简单文件上载示例:

https://github.com/numsu/google-drive-sdk-api-php-insert-file-parent-example
按照自述文件进行设置

要编辑代码以将文件始终从任何位置发送到单个驱动器,您需要获取目标驱动器的刷新令牌,在本例中是您的刷新令牌。您可以通过登录到该服务并在谷歌同意屏幕上授予特权来获得它。它将保存在
$\u会话[“凭据”]
中。对其执行
var\u dump()
,并将刷新令牌保存在某个地方,即文件或数据库中,您可以在其中访问它

现在,您可以删除指向使用oAuth登录的用户的任何内容,这并不需要

接下来,您需要使用您拥有的刷新令牌为自己获取一个访问令牌。这可以通过googleapi函数
$client->refreshttoken($refreshttoken)实现

接下来,您只需要使用
$client
变量生成一个新的驱动器服务类:
$service=new Google\u service\u drive($client)

之后,要上载文件,请执行以下操作:

$file = new Google_Service_Drive_DriveFile();
$file->setTitle($title);
$file->setMimeType($mimeType);

$data = file_get_contents($filename);
$createdFile = $service->files->insert($file, array(
        'data' => $data,
        'mimeType' => $mimeType,
        ));

祝你好运

如果无法完全从客户端执行此操作,您可以让用户上传到服务器,然后再上传到Google Drive。似乎有一个phpapi@popla面,你认为共享托管服务器可以做到吗?如果不是,你介意分享原因吗?谢谢我认为@Popleak是正确的,是的,这应该可以通过共享主机服务器实现。Popleak的评论是不正确的。你想做的是可能的。请参阅@pinoyyid谢谢分享您的答案!我一定要去看看!会让你知道如果工作:)哇!谢谢你,伙计!你在这件事上是个大人物。谢谢,我一定要试试这个:D