vvoleman / zotero-php-wrapper
PHP 的 Zotero API 包装器
v0.1.3.1-alpha
2022-03-28 13:14 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: 3.*
- suin/phpcs-psr4-sniff: ^3.0
- symfony/var-dumper: ^6.0
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