PowerBI 身份验证 C#
PowerBI authentication C#
我想知道是否有人可以帮助我,我在使用 power bi 时遇到了问题。我想要做的是将一些数据推送到 Power BI。我发现很难找到一种方法,用户可以在那里输入用户名和密码,然后我就可以将数据推送到 Power BI 帐户中。
我遇到了获取访问令牌的第一个障碍。我只是保持不好的要求。我也尝试过 getting-started-for-dotnet ,出于某种奇怪的原因,我也无法开始工作。
给出的错误是:远程服务器返回错误:(401) 未经授权。
注册为 Web 应用程序
public class PowerBICreds
{
public string resourceUri { get; set; }
public string clientID { get; set; }
public string grantType { get; set; }
public string username { get; set; }
public string password { get; set; }
public string scope { get; set; }
public string clientSecret { get; set; }
public string loginAddress { get; set; }
public string baseurl { get; set; }
}
public static string AccessToken(PowerBICreds Creds)
{
StringBuilder Httpbody = new StringBuilder();
Httpbody.Append("resource=" + HttpUtility.UrlEncode(Creds.resourceUri));
Httpbody.Append("&client_id=" + HttpUtility.UrlEncode(Creds.clientID));
Httpbody.Append("&grant_type=" + HttpUtility.UrlEncode(Creds.grantType));
Httpbody.Append("&username=" + HttpUtility.UrlEncode(Creds.username));
Httpbody.Append("&password=" + HttpUtility.UrlEncode(Creds.password));
Httpbody.Append("&scope=" + HttpUtility.UrlEncode(Creds.scope));
Httpbody.Append("&client_secret=" + HttpUtility.UrlEncode(Creds.clientSecret));
using (WebClient web = new WebClient())
{
web.Headers.Add("client-request-id", Guid.NewGuid().ToString());
web.Headers.Add("return-client-request-id", "true");
string jsonstring = web.UploadString(Creds.loginAddress, Httpbody.ToString());
dynamic result = JsonConvert.DeserializeObject(jsonstring);
try
{
return result.access_token;
}
catch
{
}
return null;
}
}
当我尝试示例时更新以显示如何使用 Mircosoft 提供的 Power BI API https://github.com/PowerBI/getting-started-for-dotnet
其他技术信息:
关联 ID:f1281ec2-4e09-41e6-8847-3acfd3eb7922
时间戳:2015-12-04 22:48:58Z
AADSTS65005:客户端应用程序已请求访问资源“https://analysis.windows.net/powerbi/api”。此请求失败,因为客户端未在其 requiredResourceAccess 列表中指定此资源。
您在使用我们的示例应用程序时遇到的错误可能意味着您使用 AAD 注册的应用程序未请求 Power BI 的任何权限。尝试使用我们位于 http://dev.powerbi.com/apps 的新应用程序注册页面。如果你只想将数据推送到 Power BI,你只需要数据集 read/write 权限。
我想知道是否有人可以帮助我,我在使用 power bi 时遇到了问题。我想要做的是将一些数据推送到 Power BI。我发现很难找到一种方法,用户可以在那里输入用户名和密码,然后我就可以将数据推送到 Power BI 帐户中。
我遇到了获取访问令牌的第一个障碍。我只是保持不好的要求。我也尝试过 getting-started-for-dotnet ,出于某种奇怪的原因,我也无法开始工作。
给出的错误是:远程服务器返回错误:(401) 未经授权。
注册为 Web 应用程序
public class PowerBICreds
{
public string resourceUri { get; set; }
public string clientID { get; set; }
public string grantType { get; set; }
public string username { get; set; }
public string password { get; set; }
public string scope { get; set; }
public string clientSecret { get; set; }
public string loginAddress { get; set; }
public string baseurl { get; set; }
}
public static string AccessToken(PowerBICreds Creds)
{
StringBuilder Httpbody = new StringBuilder();
Httpbody.Append("resource=" + HttpUtility.UrlEncode(Creds.resourceUri));
Httpbody.Append("&client_id=" + HttpUtility.UrlEncode(Creds.clientID));
Httpbody.Append("&grant_type=" + HttpUtility.UrlEncode(Creds.grantType));
Httpbody.Append("&username=" + HttpUtility.UrlEncode(Creds.username));
Httpbody.Append("&password=" + HttpUtility.UrlEncode(Creds.password));
Httpbody.Append("&scope=" + HttpUtility.UrlEncode(Creds.scope));
Httpbody.Append("&client_secret=" + HttpUtility.UrlEncode(Creds.clientSecret));
using (WebClient web = new WebClient())
{
web.Headers.Add("client-request-id", Guid.NewGuid().ToString());
web.Headers.Add("return-client-request-id", "true");
string jsonstring = web.UploadString(Creds.loginAddress, Httpbody.ToString());
dynamic result = JsonConvert.DeserializeObject(jsonstring);
try
{
return result.access_token;
}
catch
{
}
return null;
}
}
当我尝试示例时更新以显示如何使用 Mircosoft 提供的 Power BI API https://github.com/PowerBI/getting-started-for-dotnet
其他技术信息: 关联 ID:f1281ec2-4e09-41e6-8847-3acfd3eb7922 时间戳:2015-12-04 22:48:58Z AADSTS65005:客户端应用程序已请求访问资源“https://analysis.windows.net/powerbi/api”。此请求失败,因为客户端未在其 requiredResourceAccess 列表中指定此资源。
您在使用我们的示例应用程序时遇到的错误可能意味着您使用 AAD 注册的应用程序未请求 Power BI 的任何权限。尝试使用我们位于 http://dev.powerbi.com/apps 的新应用程序注册页面。如果你只想将数据推送到 Power BI,你只需要数据集 read/write 权限。