2016-07-15 26 views

Antwort

2

ich das endlich. Zunächst müssen wir unsere Azure AD- und Power BI-Anwendung verbinden.

def index 
    update_token 
    if session['access_token'] 

    redirect_to YOUR_ACTION 
    else 
    client = get_client 
    a = client.auth_code.authorize_url(:client_id => CLIENT_ID, :resource => RESOURCE_ID, :redirect_uri => REDIRECT_URI) 
    redirect_to(a) 
    end 
end 

def callback 
    begin 
    @code = params[:code] 
    client = get_client 
    token = client.auth_code.get_token(@code, :redirect_uri => REDIRECT_URI,) 
    session['access_token'] = token.token 
    if token.token.present? 
    YOUR_ACTION 
    end 
    end 
end 

def update_token 
    token = session['access_token'] 
    refresh_token = session['refresh_token'] 

    expire_at = session['expire_at'] 
    @access_token = OAuth2::AccessToken.from_hash(get_client, { :access_token => token, :refresh_token => refresh_token, :expire_at => expire_at, :header_format => 'Bearer %s' }) 

    if @access_token.expired? 

    @access_token = @access_token.refresh!; 
    session['access_token'] = @access_token.token 
    session['refresh_token'] = @access_token.refresh_token 
    session['expire_at'] = @access_token.expire_at 
    session['instance_url'] = @access_token.params['instance_url'] 
    end 
end 

def get_client 
    client = OAuth2::Client.new(CLIENT_ID, CLIENT_SECRET, :site => AUTHORITY, :authorize_url => AUTHORIZE_URL, :token_url => TOKEN_URL) 
    client 
end 

def azure 
    callback 
end 
+0

Vielen Dank für das Teilen! Ich benutze das gleiche Stück Code von einem Kern, den ich gefunden habe. Ich kämpfe hauptsächlich mit den Konstanten: RESOURCE_ID, REDIRECT_URI, AUTHORITY, AUTHORIZE_URL, TOKEN_URL. Ich weiß nicht, wo ich diese konfigurieren muss (Azure? PowerBI?) (Auch .. es gibt 2 CLIENT_ID und 2 CLIENT_SECRET ... eine von Powerbi und eine von Azure? Https://powerbi.microsoft.com/en-us/Dokumentation/powerbi-developer-authenticate-a-web-app /) –

+0

Oh, ich habe eine Frage an Sie: Ist es möglich, die PowerBI-API aufzurufen und zu authentifizieren, ohne dass der Endbenutzer sich identifizieren muss? –

+0

Sie benötigen nicht die Power BI client_ID und client_secret. Verwenden Sie dies (https://powerbi.microsoft.com/en-us/documentation/powerbi-admin-free-with-custom-azure-directory/). AUTHORITY - "https://login.windows.net" und verwende deine App-Endpunkte für AUTHORIZE_URL und TOKEN_URL. @fro_oo –

0

Um erfolgreich zu sein hatte ich alles vergaß ich vorher gelesen hatte ... und beginnen wieder mit diesem: https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-iframe/

ON AZURE PORTAL Strom BI-Arbeitsbereich Sammlung erstellen und Zugriffsschlüssel erhalten (Provisioning)

GET A PBIX Von Power-BI-Desktop oder eine Beispieldatei

MIT eINEM CLI (verwenden müssen, dass ein: https://github.com/Microsoft/PowerBI-Cli) erstellen Power-BI-Arbeitsbereich Import .pbix Datei in den Arbeitsbereich Get Bericht id

IN MY RAILS APP (mit https://github.com/jwt/ruby-jwt) einbetten den Bericht in die Webseite

Ich kann nicht sagen über die vielen aufgetretenen Fehler oder die Anmelde-/Anmeldeprobleme mit Azure ... es war sehr schmerzhaft, dorthin zu gelangen.

Prost an alle.

+0

Hey, wusstest du, wie wir eine Cron-Task für Power BI ausführen können? Wie in meinem aktuellen Code es umleiten zu Azure-Portal und erfordert Benutzername und Password, aber ich möchte es von Cron Rake-Task ausführen. @fro_oo –