forikal-uk/ping-drive

此软件包已被废弃,不再维护。作者建议使用 https://github.com/xmlsquad/ping-drive 软件包。

Symfony 控制台命令,用于报告查找和读取 Google Drive 文件夹或文件内容的过程

v0.3.3 2018-10-14 21:49 UTC

This package is not auto-updated.

Last update: 2022-02-01 13:13:30 UTC


README

Symfony 控制台命令,用于报告查找和读取 Google Drive 文件夹或文件内容的过程。

灵感来源于同名的终端命令: ping

设计用于在 https://github.com/xmlsquad/xml-authoring-tools 的 Symfony 控制台应用程序上下文中使用,后者又用于基于 xml-authoring-project 的已知目录结构中。

此简单命令应用于测试我们与特定 Google Drive 实体(文件或文件夹)的连接和访问。为此,它应该尽可能少地做其他事情,除了提供其进度反馈。

要求

  • PHP ≥7.1
  • Composer(安装所需的)
  • Google API 密钥

如何获取 Google API 客户端密钥文件

以下安装和使用说明假定您已创建 OAuth Google API 密钥并将其存储在您的本地工作站上。

  1. 打开 Google API 控制台
  2. 创建一个项目或选择一个现有项目。
  3. 在项目中启用以下 API: DriveSheets
  4. 转到“凭据”部分,“凭据”选项卡,并 创建一个“OAuth 客户端 ID”凭据。或者使用现有的 OAuth 凭据。
  5. 点击“OAuth 2.0 客户端 ID”列表右侧的下载按钮(⬇️)。

安装

作为独立项目安装

打开终端并运行

# Using composer's create-project command
composer create-project xmlsquad/ping-drive <directoryName>

# Cloning the git project 
git clone https://github.com/xmlsquad/ping-drive.git <directoryName>
composer install -d <directoryName>

其中 <directoryName> 是必须安装命令的目录。在这种情况下,通过运行来启动命令

php <directoryName>/bin/ping-drive  --help

以下 用法 部分描述了其他选项和参数。

作为项目依赖项安装

打开终端,进入项目根目录并运行

composer require xmlsquad/ping-drive

在这种情况下,通过运行来启动命令

php vendor/bin/ping-drive  --help

用法

该命令代表一个 Google 用户操作。因此,您至少需要在第一次运行时进行身份验证。我说“至少”是因为,如果提供了 --gApiAccessTokenFile,则可以将身份验证令牌存储以供后续调用使用。

要使用它,运行命令并按照其指示操作。

命令签名

ping-drive -v --gApiOAuthSecretFile=GAPIOAUTHSECRETFILE --gApiAccessTokenFile=ACCESS-TOKEN-FILE --forceAuthenticate -q URL
  • URL 指定要ping的URL。此参数是必需的。
  • -v--verbose 开启详细模式。在此模式下,将打印详细进度信息。否则,只打印关键信息。
  • --gApiOAuthSecretFile 指定包含Google API客户端秘密的JSON文件的路径。以下是如何获取它的说明。
  • --gApiAccessTokenFile 指定包含Google API访问令牌的JSON文件的路径。访问令牌文件是可选的。如果设置了文件路径,则访问令牌将被保存,后续执行将不会提示授权。如果指定的文件不存在,则将其创建。
  • --forceAuthenticate 即使提供了访问令牌,也会使命令提示Google身份验证。当您遇到授权问题或需要验证到另一个账户时,可以使用它。
  • -q--quiet 使命令不打印任何内容。

行为

命令打印URL信息

(查看带有截图和命令行预期输出的每种类型的示例)

使用示例

php vendor/bin/ping-drive -v https://drive.google.com/drive/u/0/folders/0B5q9i2h-vGaCQXhLZFNLT2JyV0U
# Prints the folder content

如果文件可访问,则命令以状态码0退出,如果文件不可访问,则以状态码1退出。因此,可以将命令用于复杂的bash脚本中,例如

if [[ ping-drive -q ... ]]; then echo "Success!"; else echo "Fail"; fi

使用配置文件

可以从配置文件中读取客户端秘密和访问令牌的路径。在这种情况下,在启动命令时不需要设置这些选项。

配置文件必须命名为 XmlAuthoringProjectSettings.yaml,位于运行命令的目录中或其父目录之一。 XmlAuthoringProjectSettings.yaml.dist 是配置文件的示例,其中包含必需的参数。

故障排除

如果您收到以 Failed to authenticate to Google: 开头的错误消息,并且其余消息没有提供太多信息,请执行以下操作

  1. 请仔细检查您是否遵循了API密钥说明,并使用正确的类型的密钥。
  2. 尝试通过使用 --forceAuthenticate 选项重新运行命令从零开始进行身份验证。
  3. 如果不起作用,请再次创建Google API客户端密钥文件,并确保命令使用新文件。您可以通过运行带有-v选项的命令来查看正在使用的密钥文件。

贡献

  1. 克隆存储库。
  2. 通过在控制台中运行composer install来安装依赖项。
  3. 进行修改。确保代码遵循PSR-2标准
  4. 通过运行composer test测试代码。如果测试失败,修复代码。
  5. 提交并推送更改。