【问题标题】:Google Drive REST API Documentation working directoryGoogle Drive REST API 文档工作目录
【发布时间】:2018-04-12 21:58:30
【问题描述】:

我在 PHP 中遵循 QuickStart Google Drive REST API 的this 说明,但在说“工作目录”的部分我需要移动 quickstart.php 和 client_secret.json 但我不知道在哪里工作目录。

我正在使用带有 Apache 和 PHP 5.6 的 Windows Server 2012 R2,我只需要将这些文件放在该工作目录中,而不是在 Apache 文件夹中的 htdocs 中工作。

【问题讨论】:

    标签: php google-drive-api


    【解决方案1】:

    工作目录可以是htdocs 文件夹中的任何网络可访问目录,例如my_google_disk。但不要忘记限制对client_secret.json 文件的访问。您可以通过 3 种方式做到这一点:

    1) 最简单的方法是将client_secret.json 的内容保存在脚本内的 PHP 字符串变量中,例如:

    $clientSecretData = '{...}' // client_secret.json data here
    

    然后你只需要解码变量的内容,得到JSON字符串数组如下:

     $clientSecretData = json_decode($clientSecretData, true);
    

    2) 您可以将其保存在任何 Web 可访问的目录中(例如htdocs/my_google_disk),但是您需要在该目录中创建.htaccess 文件并在那里保存用于访问控制的特殊指令:

    <Files "client_secret.json">
    Order Allow,Deny
    Deny from all
    </Files>
    

    之后,尝试通过 URL http://example.com/my_google_disk/client_secret.json(example.com = 您的域名)访问此文件,您将看到 404 Forbidden 错误。

    您将能够从htdocs/my_google_disk/quickstart.php 中的该文件中获取数据,如下所示:

    $clientSecretData = file_get_contents('client_secret.json');
    

    3) 将其保存在目录中,该目录位于比htdocs 目录更高的级别,例如C:\apache\private_files。 private_files 这里一定不能通过 URL 访问。在您的脚本中将此目录设置为include path。然后,您将能够从 htdocs/my_google_disk 目录中的脚本中的该文件中获取数据,如下所示:

    $clientSecretData = file_get_contents('../../private_files/client_secret.json');
    

    【讨论】:

    • 完美!工作目录是 htdocs。缺少位于 C:/Windows/SysWOW64/vendor/autoload.php 中的 Google Api composer 并将第二行替换为 require_once 'C:/Windows/SysWOW64/vendor/autoload.php';脚本就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多