aeneria / enedis-data-connect
一个小型库,用于使用PHP的Enedis Data Connect API的部分功能:https://datahub-enedis.fr/data-connect/
2.0.2
2024-01-05 11:42 UTC
Requires
- php: ^8.1
- symfony/http-client: 5.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^8.5
- symfony/serializer-pack: ^1.0
README
最初开发用于在 aeneria 中使用,这个小型库允许您轻松地使用 Enedis Data Connect API。
需求
PHP 8.1 或更高版本
入门指南
首先,您需要ClientID和ClientSecret才能使用Enedis Data Connect API。访问 https://datahub-enedis.fr/data-connect,了解如何获取它们。在注册过程中,您还需要提供一个重定向URL,您将需要它来使用此库。
现在您有了这些,可以使用composer安装库
composer require aeneria/enedis-data-connect
如果您使用的是如Symfony之类的框架,您可以将其声明为服务并使用依赖注入来使用库
# config/services.yaml
services:
Aeneria\EnedisDataConnectApi\Service\DataConnectService:
class: Aeneria\EnedisDataConnectApi\Service\DataConnectService
arguments:
$httpClient: "@http_client"
$authEndpoint: "https://mon-compte-particulier.enedis.fr"
$tokenEndpoint: "https://gw.prd.api.enedis.fr "
$dataEndpoint: "https://gw.prd.api.enedis.fr"
$clientId: "YOUR_CLIENT_ID"
$clientSecret: "YOUR_CLIENT_SECRET"
$redirectUri: "YOUR_REDIRECT_URI"
或者您可以通过以下方式在您的代码中声明它
<?php
use Aeneria\EnedisDataConnectApi\Service\DataConnectService;
//...
$dataConnect = new DataConnectService(
HttpClient::create(),
"https://mon-compte-particulier.enedis.fr",
"https://gw.prd.api.enedis.fr "
"https://gw.prd.api.enedis.fr",
"YOUR_CLIENT_ID",
"YOUR_CLIENT_SECRET",
"YOUR_REDIRECT_URI
);
//...
然后您可以使用API
<?php
// Getting consent page URL
$dataConnect->getAuthorizeV1Service()->getConsentPageUrl('P6M', $state);
// Getting Tokens form Code
$token = $dataConnect->getAuthorizeV1Service()->requestAuthorizationToken();
// Getting consumption data
$meteringData = $dataConnect->getMeteringDataV5Service()->requestDailyConsumption(
$token->getAccessToken(),
$token->getUsagePointsId(),
new \DateTimeImmutable('8 days ago'),
new \DateTimeImmutable('yesterday')
);
$meteringData = $dataConnect->getMeteringDataV5Service()->requestConsumptionLoadCurve(
$token->getAccessToken(),
$token->getUsagePointsId(),
new \DateTimeImmutable('2 days ago'),
new \DateTimeImmutable('yesterday')
);
// Getting customer data
$address = $dataConnect->getCustomersV5Service()->requestUsagePointAdresse(
$token->getAccessToken(),
$token->getUsagePointsId()
);
支持
欢迎 提出问题!