tvup/ewiiapi

此软件包已被废弃且不再维护。未建议替代软件包。

Ewii客户获取消费数据的API

v2.1.1 2022-11-12 06:16 UTC

README

此仓库包含PHP库代码,旨在通过packagist作为composer软件包加载到另一个PHP应用程序中。该API公开了登录和获取消费数据所需的请求之间的功能。

自行承担风险

先决条件

需要在 https://selvbetjening.ewii.com/Login 上有一个账户,可以使用电子邮件和密码登录。

如果您是现有客户但没有使用电子邮件和密码进行登录的设置,请按照以下步骤操作

  • 以正常方式登录(nem-id)
  • 在上角点击 "Min profil"(我的资料)
  • 选择 "Mine oplysninger"(我的信息)
  • 找到 "Tildel andre adgang"(授权他人访问)并点击 "Tildel adgang"(授权访问)
  • 按照步骤设置一个可以访问您的消费数据的账户。我不知道如果您选择Ewii已经拥有的电子邮件地址会发生什么 - 可能选择一个不同于您的首选电子邮件地址,或者如果您熟悉,使用 "google dot"-技巧。

这将设置一个使用电子邮件和密码的辅助登录。

使用composer安装

composer require tvup/ewiiapi

API的工作流程

显然您需要通过API进行调用以登录。这将设置一个cookie,该cookie用于在所有其他请求中进行身份验证。

该流程包含以下步骤

  1. 登录
  2. 获取 "AddressPickerViewModel" - 您的地址列表 - 如果您在多个地址没有产品,可能只有一个
  • 对于每个地址都有一个安装列表。再次可能只有一个,但您应该可以想象,您可能有多电和互联网宽带或多个电安装,每个都有自己的电表。
    • 选择 "the one"
  1. 通过调用 "setSelectedAddressPickerElement" 将 "the one" 设置 - 这似乎是强制性的,否则下一个请求将失败 ¯\_(ツ)_/¯
  2. 获取电表的元数据
  3. 使用一些元数据获取消费数据

示例代码

require_once 'vendor/autoload.php';

$ewiiApi = new Tvup\EwiiApi\EwiiApi();
//$ewiiApi->setDebug(true);

//1
$ewiiApi->login('AN_EMAIL_ADDRESS','A_PASSWORD');

//2
$addressElement = $ewiiApi->getAddressPickerViewModel();

//3
$ewiiApi->setSelectedAddressPickerElement($addressElement);

//4
$consumptionMeterMetaData = $ewiiApi->getConsumptionMeters();

//5
$response = $ewiiApi->getConsumptionData('csv', $consumptionMeterMetaData);

print_r($response);

cookie和登录

API正在处理Ewii的cookie并将其保存到磁盘。如果磁盘上存在cookie,则将使用它,即使您调用了 public function login(string $email, string $password): void 方法,也不会调用登录。请记住,这个API不是为了让你对Ewii的服务进行大量请求并引起注意而创建的。

反馈

始终欢迎。创建此项目是因为我对是否可行感到好奇,一旦目标实现,我就容易失去兴趣。如果你想要不同的东西 - 你可以发起pull-request,我们可以分享彼此的理解。

喜欢它吗?

太好了。很高兴能帮到你。

我想捐赠以示感谢

不要

我坚持

可能花在啤酒上: https://www.buymeacoffee.com/tvup