Как интегрировать PowerBI в symfony4 - PullRequest
0 голосов
/ 02 апреля 2019

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

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

1 Ответ

0 голосов
/ 02 апреля 2019

До сих пор нет комплекта Symfony для power bi, но вместо этого вы можете использовать: 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;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...