10

OAuth2 経由で API に接続するためのカスタム コネクタを作成しています。これは、API を powerbi のデータ ソースとして使用できるようにするためです。

    // Resource definition
        Resource = [
            Description = "MyAPI",
            Type = "Custom",
            MakeResourcePath = (env) => env,
            ParseResourcePath = (env) => {env},
            Authentication = [OAuth=[StartLogin = StartLogin, FinishLogin = FinishLogin, Refresh = Refresh]],
    ......
Icons = [
            Icon16 = { Extension.Contents("MyAPI10.png"), Extension.Contents("MyAPI20.png") }
        ],
        Label = "MyAPI"
    ]
in
    Extension.Module("MyAPI", { Resource })

MakeResourcePath と ParseResourcePath を使用してEnvironmentパラメーターを渡しました (これは、Power BI サイト/デスクトップでユーザーからの入力として取得されます)。StartLoginこれは、OAuth 承認呼び出しを行うために に渡されます。

  StartLogin = (env, state, display) =>
        let
            resourceUrl = getOAuthUrlFromEnvName(env) & "/oauth/authorize",
            AuthorizeUrl = resourceUrl & "?" & Uri.BuildQueryString([
                client_id = getClientIdFromEnv(env),
                response_type = "code",
                state = state, // added by VM
                redirect_uri = redirect_uri])
        in
            [
                LoginUri = AuthorizeUrl,
                CallbackUri = redirect_uri,
                WindowHeight = windowHeight,
                WindowWidth = windowWidth,
                Context = env
            ],

ユーザーからの入力として別のパラメーターが必要です。hostnameui で呼び出されます。どのように渡しhostnameenvironment両方をStartLogin機能させるのですか? 基本的に、構築するにはこれら 2 つの変数が必要ですresourceUrl。参考文献も役に立ちます。

4

1 に答える 1