metarisc/metarisc-php

此软件包最新版本(dev-main)没有可用的许可信息。

Metarisc PHP 库

dev-main 2024-06-11 08:43 UTC

This package is auto-updated.

Last update: 2024-09-08 16:09:24 UTC


README

Metarisc PHP 库提供了一个简单实用的接口,可以从PHP编写的应用程序中访问Metarisc API。它包含一组用于API所有资源的类和函数。

兼容性

最低PHP版本8.0。

Composer

您可以使用Composer安装此库。执行以下命令:

composer require metarisc/metarisc-php

要使用此库,请使用Composer 自动加载

require_once 'vendor/autoload.php';

使用方法

使用OAuth2进行初始化

客户端凭证流

要使用客户端凭证授权

$metarisc = new \Metarisc\Metarisc([
    'metarisc_url' => 'https://api.metarisc.fr', // Optionnel
    'client_id' => 'your_client_id',
    'client_secret' => 'your_client_secret', // Optionnel
]);

$metarisc->authenticate('oauth2:client_credentials', [
    'scope' => 'openid', // Optionnel
    'access_token_url' => 'https://id.metarisc.fr/auth/realms/production/protocol/openid-connect/token', // Optionnel
]);

授权码流

要使用授权码授权流,您需要通过将用户代理重定向到授权端点来获取一个代码。客户端必须包含其客户端ID、请求的作用域、状态以及授权服务器在访问批准(或拒绝)后应将用户代理重定向到的URI。

为了简化生成指向Metarisc OAuth2表单的URI

$metarisc = \Metarisc\Auth\OAuth2::authorizeUrl([
    'client_id' => 'xx',
    'redirect_uri' => 'xx', // Optionnel
    'scope' => 'xx', // Optionnel
    'state' => 'xx', // Optionnel
]);

当用户接受请求时,授权服务器将用户代理重定向到客户端提供的重定向URI,并使用带有授权代码的HTTP重定向响应。然后您可以使用此授权代码来初始化客户端。

$metarisc = new \Metarisc\Metarisc([
    'metarisc_url' => 'https://api.metarisc.fr', // Optionnel
    'client_id' => 'your_client_id', 
    'client_secret' => 'your_client_secret', // Optionnel
]);

$metarisc->authenticate('oauth2:authorization_code', [
    'code' => 'your_authorization_code',
    'scope' => 'openid', // Optionnel
    'access_token_url' => 'https://id.metarisc.fr/auth/realms/production/protocol/openid-connect/token', // Optionnel
    'redirect_uri' => 'https://your_redirect_uri', // Optionnel
    'enable_refresh_token_grant_type' => false, // Optionnel
]);

简单请求

要向Metarisc发出请求,您可以使用request函数。

示例

$options = [];
$response = $metarisc->request('GET', '/@moi', $options);

获得的响应是一个PSR7 Response对象。

注意:可用的请求选项是Guzzle的选项(请参阅https://docs.guzzlephp.org/en/stable/request-options.html)。

分页

要获取分页的Metarisc结果(请参阅文档),您可以使用一个简化其使用的函数。

$paginator = $metarisc->pagination('GET', '/pei', ['query' => ['est_indisponible' => true]]);
$paginator->setMaxNbPages(75);
$paginator->setCurrentPage(3);
$nbResults = $paginator->getNbResults();
$currentPageResults = $paginator->getCurrentPageResults();

获得的分页器是一个Pagerfanta对象。

要要求分页器返回业务对象,您可以通过传递model_class选项,以便它可以反序列化页面结果。

注意:可用的请求选项是Guzzle的选项(请参阅https://docs.guzzlephp.org/en/stable/request-options.html)。