aeneria/enedis-data-connect

一个小型库,用于使用PHP的Enedis Data Connect API的部分功能:https://datahub-enedis.fr/data-connect/

2.0.2 2024-01-05 11:42 UTC

This package is auto-updated.

Last update: 2024-09-05 12:55:24 UTC


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()
);

支持

欢迎 提出问题