vvoleman/zotero-php-wrapper

PHP 的 Zotero API 包装器

v0.1.3.1-alpha 2022-03-28 13:14 UTC

This package is auto-updated.

Last update: 2024-09-25 12:35:52 UTC


README

PHP 的 Zotero 引用软件包装器

功能

面向对象方法。由于我不知道 API 的完整规模,我可以轻松地添加新的端点和内容

安装

composer require vvoleman/zotero-php-wrapper

使用

连接到 Zotero

要使用 Zotero 的 API,您需要生成 API 密钥。

获取 API 密钥

登录您的 Zotero 账户并访问 Feeds/API 个人设置部分并点击 创建新私钥

接下来,您可以指定此 API 密钥将具有哪些权限。保存您的 API 密钥,因为您离开此页面后无法检索它。

创建实例

进入您的代码并创建一些实例。

$api = new ZoteroApi("YOUR_API_KEY",new KeysSource("YOUR_API_KEY"));
$api->run();
$data = $api->getBody();

让我们稍作解释。 ZoteroApi 实例需要 API 密钥进行身份验证和源。

源是从中检索数据的默认分支。到目前为止,有

  • UsersSource/GroupSource

    • 您的所有珍贵集合和项目都链接到用户或组。与两者一起工作是一样的。
    • 创建您的 UsersSource/GroupSource 实例后,您可以使用 ZoteroApi::setEndpoint() 将端点设置到它们上,该函数接受 AbstractEndpoint 实例作为参数
      $api = new ZoteroApi($_ENV["API_KEY"], new UsersSource("YOUR_USER_ID"));
      $api->setEndpoint(
          (new Collections("COLLECTION_ID"))
                ->setEndpoint(new Items(AbstractEndpoint::ALL))
      );
    • AbstractEndpoint 可以链式调用另一个 AbstractEndpoint - 想象一下,您可以将 /items 添加到 /collections/ID。但是,链式调用有局限性。您不能将 /items 添加到 /collections - 您必须指定特定的集合。
    • 所以,这里是一些可能的链式调用(不是全部,但您应该明白了)
      • Collections("ID") -> Items(<所有选项>)
        • Collections("ID") -> Items("ID") -> Tags("ID")
        • Collections("ID") -> Items("ID") -> Tags(AbstractEndpoint::ALL)
    • AbstractEndpoint 将一个字符串值作为构造函数参数,该字符串值指定您要搜索的内容
      • AbstractEndpoint::ALL - 所有结果
      • AbstractEndpoint::TOP - 只有顶级结果
      • AbstractEndpoint::TRASH - 废弃结果
      • "ID" - 端点的特定 ID