如何将PowerBI集成到symfony4中

时间:2019-04-02 10:55:02

标签: symfony statistics powerbi symfony4

我想在我的项目symfony 4中集成高级统计信息 所以我决定使用PowerBI(如果您有其他选择,请告诉我),

我的问题是如何将其集成到本地项目symfony4中以及与数据库MySQL相关联

1 个答案:

答案 0 :(得分:0)

到现在为止,没有用于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;
}

希望对您有帮助。