tvup / ewiiapi
此软件包已被废弃且不再维护。未建议替代软件包。
Ewii客户获取消费数据的API
v2.1.1
2022-11-12 06:16 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ^7.5
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用于在所有其他请求中进行身份验证。
该流程包含以下步骤
- 登录
- 获取 "AddressPickerViewModel" - 您的地址列表 - 如果您在多个地址没有产品,可能只有一个
- 对于每个地址都有一个安装列表。再次可能只有一个,但您应该可以想象,您可能有多电和互联网宽带或多个电安装,每个都有自己的电表。
- 选择 "the one"
- 通过调用 "setSelectedAddressPickerElement" 将 "the one" 设置 - 这似乎是强制性的,否则下一个请求将失败
¯\_(ツ)_/¯
- 获取电表的元数据
- 使用一些元数据获取消费数据
示例代码
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