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