symfony - 如何在 symfony4 中集成 PowerBI
问题描述
我想在我的项目 symfony 4 中集成一个高级统计信息,所以我决定使用 PowerBI(如果你有其他选择,请告诉我),
我的问题是如何将它集成到我的本地项目 symfony4 中并与我的数据库 MySQL 相关
解决方案
到目前为止,还没有用于 power bi 的 Symfony 捆绑包,但您可以使用:adevait/power-bi
如果您没有找到您正在寻找的选项,您可以使用本机power bi rest api
您需要创建一个帐户并通过创建数据集等来管理它......
要求 :
- GuzzleHttp
这里的重点是创建一个管理调用 api 的服务:
身份验证示例:
try {
/** @var GuzzleHttp\Client $client **/
$response = $client->post(
'https://login.windows.net/<tenant-id>/oauth2/token',
[
"headers" => [
"Accept" => "application/json"
],
'form_params' => [
'resource' => 'https://analysis.windows.net/powerbi/api',
'client_id' => $this->clientId,
'client_secret' => $this->secret,
'grant_type' => 'password',
'username' => $this->username,
'password' => $this->password,
'scope' => 'openid',
]
]
);
$body = json_decode($response->getBody()->getContents(), true);
return $body['access_token'];
} catch (ClientException $e) {
return ['error' => $e->getMessage()];
}
此时,您需要令牌来调用其他端点,因此您需要将返回的令牌注入您发送的任何请求的标头中,例如:
try {
/** @var GuzzleHttp\Client $client **/
$client->post(
https://api.powerbi.com/v1.0/myorg/groups/<group-id>/datasets/<dataset-id>/tables/<table-name>/rows,
[
'headers' => [
"Accept" => "application/json",
"Authorization" => sprintf("Bearer %s", $token),
],
'json' => $data
]
);
return true;
} catch (ClientException $e) {
return false;
}
希望对你有所帮助。
推荐阅读
- fortran - Pi 计算使用 OpenMP 给出了不正确的结果
- typescript - TS2531:对象可能为“空”。离子 - Vue.js
- python - 如何在 pandas 中按 2 个条件聚合?
- cordova - 如何安装离子科尔多瓦本地通知扩展?
- reactjs - 反应忽略 useMobileDetection 自定义挂钩返回值,除非调整大小
- arrays - 打印在 C 中多次重新分配的数组
- chef-infra - 如何在 Knife.rb 文件中屏蔽输出日志
- firefox - 如何在启用全屏的 iframe 中运行网站。firefox 进入全屏,但如果单击另一个链接 FF 退出
- reactjs - React JS Fluent ui onRenderTitle
- kubernetes - 启用自动缩放后,如何在 Spinnaker 中使用 Resize Server Group 阶段?