cloudplaydev / confluence-php-client
提供对 Confluence REST API 的方法
0.6.0
2024-03-01 22:08 UTC
Requires
- php: ^7.4 || ^8.1
- ext-json: *
- php-http/client-common: ^2.2
- php-http/discovery: ^1.11
- php-http/httplug: ^2.0
- php-http/message: ^1.10
- php-http/promise: ^1.0
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
- webmozart/assert: ^1.10
Requires (Dev)
- guzzlehttp/guzzle: ^7.2
- http-interop/http-factory-guzzle: ^1.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.0.0
- phpstan/phpstan-webmozart-assert: ^1.0.0
- phpunit/phpunit: ^9.5.5,<=10.0
- vimeo/psalm: ^5.1
README
PHP 的 Confluence RESTful API 客户端
Confluence 的面向对象包装器
需求
- PHP >= 8.1.0
安装
$ composer require cloudplaydev/confluence-php-client
使用方法
身份验证
使用个人访问令牌
use CloudPlayDev\ConfluenceClient\ConfluenceClient; $client = new ConfluenceClient('https://url-to-conluence'); //authenticate with a private access token //@see https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html $client->authenticate('NjU2OTA4NDI2MTY5OkBznOUO8YjaUF7KoOruZRXhILJ9');
使用 BaseAuth
$client = new ConfluenceClient('https://USERNAME:PASSWORD@url-to-conluence');
或
use CloudPlayDev\ConfluenceClient\ConfluenceClient; $client = new ConfluenceClient('https://url-to-conluence'); $client->authenticateBasicAuth('USERNAME', 'PASSWORD');
获取页面、评论和附件
通过标题和空间键查找页面
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //Get the page we created $searchResults = $client->content()->find([ 'spaceKey' => 'testSpaceKey', 'title' => 'Test' ]); //first page $createdPage = $searchResults->getResultAt(0);
使用分页浏览内容
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ $limit = 100; $start = 10; //Get the search results with pagination $searchResults = $client->content()->find([ 'spaceKey' => 'testSpaceKey', 'title' => 'Test' ], $limit, $start); //check if there are more results while(!$searchResults->isLastPage()) { //get the next pages $nextPages = $client->content()->find([ 'spaceKey' => 'testSpaceKey', 'title' => 'Test' ], $limit, $searchResults->getStart() + $limit); }
通过内容 ID 获取页面或评论
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //Get a page or comment $resultContent = $client->content()->get(1234567890);
通过内容 ID 获取页面或评论的旧版本
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //Get a page or comment in a specific version $resultContentInVersion2 = $client->content()->get(1234567890, 2);
获取页面子代
use CloudPlayDev\ConfluenceClient\Api\Content; /* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ /* @var $page CloudPlayDev\ConfluenceClient\Entity\ContentPage */ //get child content $childContent = $client->content()->children($page, Content::CONTENT_TYPE_PAGE); //\CloudPlayDev\ConfluenceClient\Entity\ContentSearchResult
获取内容历史
use CloudPlayDev\ConfluenceClient\Api\Content; /* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ $pageId = 2323232323; $historyData = $client->content()->history($pageId); // \CloudPlayDev\ConfluenceClient\Entity\ContentHistory
内容操作
创建新页面
use CloudPlayDev\ConfluenceClient\Entity\ContentPage; /* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //Create a confluence content page $page = new ContentPage(); //Configure your page $page->setSpace('testSpaceKey') ->setTitle('Test') ->setContent('<p>test page</p>'); //Create the page in confluence in the test space $client->content()->create($page);
创建新评论
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //get a page by id $page = $client->content()->get(123456789); //attach a comment to the page $comment = $page->createComment('my comment text'); //save the comment $client->content()->create($comment);
创建子页面
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //get a page by id $page = $client->content()->get(123456789); //attach a subpage to page $subPage = $page->createSubpage('subpage title', 'subpage content'); //save the page $client->content()->create($subPage);
更新内容
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //get content by id $page = $client->content()->get(123456789); //change content $page->setContent('new content') ->setTitle('new title'); //save the changes $client->content()->update($page);
删除内容
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */ //get content by id $page = $client->content()->get(123456789); //delete content $client->content()->delete($page);
常见问题解答
如何对 Confuence 云进行身份验证?
您必须使用基本身份验证(用户名和密码)。您还可以使用个人访问令牌代替密码。有关更多信息,请参阅 使用个人访问令牌。
在此处创建新的 API 令牌: https://id.atlassian.com/manage-profile/security/api-tokens
use CloudPlayDev\ConfluenceClient\ConfluenceClient; $client = new ConfluenceClient('https://xxxxxxxx.atlassian.net/wiki/'); $client->authenticateBasicAuth('USERNAME', 'TOKEN');