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()
);
支持
欢迎 提出问题!