Как интегрировать PowerBI в symfony4

#symfony #statistics #powerbi #symfony4

#symfony #Статистика #powerbi #symfony4

Вопрос:

Я хочу интегрировать расширенную статистику в свой проект symfony 4, поэтому я решил использовать PowerBI (если у вас есть альтернатива, пожалуйста, дайте мне знать),

мой вопрос заключается в том, как интегрировать его в мой локальный проект symfony4 и в связи с моей базой данных MySQL

Ответ №1:

До сих пор не существует пакета Symfony для power bi , но вместо этого вы можете использовать: adevait/power-bi

В случае, если вы не нашли искомых опций, вы можете использовать собственный power bi rest api

Вам нужно создать учетную запись и управлять ею, создав свой набор данных и т.д…

Требование :

  • GuzzleHttp

Суть здесь в том, чтобы создать, например, службу, которая управляет вызовом api :

пример для аутентификации :

 try {
    /** @var GuzzleHttpClient $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 GuzzleHttpClient $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;
}
  

Надеюсь, это поможет вам.

Комментарии:

1. на самом деле я не понял

2. что именно вы не понимаете?

3. Является ли PowerBI не бесплатным?

4. вы можете воспользоваться бесплатной пробной версией здесь app.powerbi.com/signupredirect?pbi_source=web