Tôi đang tạo một trình kết nối tùy chỉnh để kết nối với API của chúng tôi qua OAuth2. Điều này là để chúng tôi có thể sử dụng api của chúng tôi như là một nguồn dữ liệu để powerbi.Vượt qua một số tham số trong chức năng StartLogin
// 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 })
tôi đã sử dụng MakeResourcePath và ParseResourcePath để vượt qua Environment
tham số (được thực hiện như là đầu vào từ người sử dụng trong điện bi trang web/máy tính để bàn). Thông báo này được chuyển đến StartLogin
để thực hiện cuộc gọi ủy quyền 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
],
Tôi cần thông số khác làm đầu vào từ người dùng ngay bây giờ. Nó được gọi là hostname
trong ui. Làm cách nào để vượt qua hostname
và environment
cả hai chức năng này với chức năng StartLogin
? Về cơ bản tôi cần hai biến này để xây dựng resourceUrl
. Mọi tham chiếu cũng sẽ hữu ích.
và làm thế nào để tôi chỉ định tên máy chủ và môi trường? Các giá trị được người dùng nhập vào sẽ kết thúc như thế nào? – sudeepdino008
Bạn có thể tham khảo [ví dụ] (https://github.com/Microsoft/DataConnectors/tree/master/samples/HelloWorldWithDocs) để biết cách lấy dữ liệu nhập của người dùng. –