PowerBI身份验证C#

本文关键字:身份验证 PowerBI | 更新日期: 2023-09-27 18:25:50

我想知道是否有人能帮我,我的power bi有问题。我想做的是将一些数据推送到power bi。我发现很难找到一种方法,如果用户可以在那里输入用户名和密码,然后我就可以将数据推送到PowerBI帐户。

我被困在了获得访问令牌的第一个障碍上。我只是保留了不好的要求。我也试着开始使用网络,但由于一些奇怪的原因,我也无法上班。

给出的错误为:远程服务器返回错误:(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 APIhttps://github.com/PowerBI/getting-started-for-dotnet

附加技术信息:相关性ID:f1281ec2-4e09-41e6-8847-3acfd3eb7922时间戳:2015-12-04 22:48:58ZAADSTS65005:客户端应用程序已请求访问资源"https://analysis.windows.net/powerbi/api"。此请求失败,因为客户端未在其requiredResourceAccess列表中指定此资源。

PowerBI身份验证C#

您在使用我们的示例应用程序时遇到的错误可能意味着您在AAD注册的应用程序没有请求任何Power BI权限。请尝试使用我们的新应用程序注册页面http://dev.powerbi.com/apps.如果您只想将数据推送到Power BI,您只需要数据集的读/写权限。