brd6 / notion-sdk-php
PHP版的官方NOTION API
1.2.4
2024-09-19 19:50 UTC
Requires
- php: ^7.4 || ^8
- php-http/client-common: ^2.5
- php-http/discovery: ^1.14
- php-http/httplug: ^2.3
- php-http/message-factory: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-message: ^2.0
Requires (Dev)
- captainhook/captainhook: ^5.10
- dealerdirect/phpcodesniffer-composer-installer: ^1.0.0
- ergebnis/composer-normalize: ^2.25
- hamcrest/hamcrest-php: ^2.0
- mockery/mockery: ^1.5
- nyholm/psr7: ^1.5
- php-http/message: ^1.13
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1.5
- phpstan/phpstan-mockery: ^1.0
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^9.5
- psalm/plugin-mockery: ^1.1.0
- psalm/plugin-phpunit: ^0.19.0
- ramsey/coding-standard: ^2.0
- roave/security-advisories: dev-latest
- symfony/http-client: ^5.4
- vimeo/psalm: ^5.6
Suggests
- nyholm/psr7: PSR-7 message implementation
- symfony/http-client: HTTP client
This package is auto-updated.
Last update: 2024-09-19 20:00:07 UTC
README
PHP版的官方NOTION API
这是官方NOTION API的PHP版本。它的工作方式与参考的JavaScript SDK相同 🎉
安装
使用Composer将此包作为依赖项安装。
composer require brd6/notion-sdk-php
此包 (brd6/notion-sdk-php)
不依赖于任何特定的库,例如用于发送HTTP消息的Guzzle或Buzz。相反,它使用PSR-18客户端抽象,让用户选择他们想要使用的PSR-7实现和HTTP客户端。
如果您只想快速开始使用symfony http客户端,请运行以下命令
composer require brd6/notion-sdk-php symfony/http-client nyholm/psr7
用法
使用Notion的入门指南来设置使用Notion API。
使用集成令牌或OAuth访问令牌导入并初始化客户端。
use Brd6\NotionSdkPhp\Client; use Brd6\NotionSdkPhp\ClientOptions; $options = (new ClientOptions()) ->setAuth(getenv('NOTION_TOKEN')); $notion = new Client($options);
向任何Notion API端点发送请求。
在API参考中查看端点的完整列表。
$listUsersResponse = $notion->users()->list(); var_dump($listUsersResponse->toArray());
array (size=4) 'has_more' => boolean false 'results' => array (size=2) 0 => array (size=6) 'object' => string 'user' (length=4) 'id' => string '7f03dda0-a132-49d7-b8b2-29c9ed1b1f0e' (length=36) 'type' => string 'person' (length=6) 'name' => string 'John Doe' (length=8) 'avatar_url' => string 'https://s3-us-west-2.amazonaws.com/public.notion-static.com/521dfe9c-f821-4de8-a0bb-e40ff71283e5/39989484_10217003981481443_4621803518267752448_n.jpg' (length=149) 'person' => array (size=1) ... 1 => array (size=5) 'object' => string 'user' (length=4) 'id' => string '8dee9e49-7369-4a6d-a11f-7db625b2448c' (length=36) 'type' => string 'bot' (length=3) 'name' => string 'MyBot' (length=5) 'bot' => array (size=1) ... 'object' => string 'list' (length=4) 'type' => string 'user' (length=4)
端点参数组合成一个单独的对象。您不需要记住哪些参数放入路径、查询或正文。
$databaseRequest = new DatabaseRequest(); $databaseRequest->setFilter([ 'property' => 'Landmark', 'text' => [ 'contains' => 'Bridge', ], ]); $myPage = $notion->databases()->query('897e5a76-ae52-4b48-9fdf-e71f5945d1af', $databaseRequest)
错误处理
如果API返回不成功的响应,将抛出ApiResponseException
。
错误包含来自响应的属性,其中最有帮助的是code
。您可以将code
与NotionErrorCodeConstant
对象中的值进行比较,以避免拼写错误代码。
客户端选项
Client
支持初始化时以下选项。这些选项可以在ClientOptions
实例上设置。
贡献
欢迎贡献!要贡献,请熟悉CONTRIBUTING.md。
许可
MIT许可(MIT)。有关更多信息,请参阅LICENSE。