You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过REST API下载IBM Analytics Workspace报表/查询数据至PowerShell/C#变量?

从IBM Analytics Workspace通过REST API导出数据到PowerShell/C#

可行性说明

可以通过IBM Analytics Workspace的REST API导出报表/查询数据,核心是利用其报表数据导出端点和IAM认证机制(API密钥或OAuth)。

PowerShell 代码示例

1. 获取IAM访问令牌

# 替换为你的实际配置
$apiKey = "YOUR_IBM_CLOUD_API_KEY"
$instanceId = "YOUR_ANALYTICS_WORKSPACE_INSTANCE_ID"
$region = "us-south" # 实例所在区域,如eu-gb、ap-southeast-1等

# 请求IAM令牌
$tokenResponse = Invoke-RestMethod -Uri "https://iam.cloud.ibm.com/identity/token" -Method Post -ContentType "application/x-www-form-urlencoded" -Body @{
    grant_type = "urn:ibm:params:oauth:grant-type:apikey"
    apikey = $apiKey
}
$accessToken = $tokenResponse.access_token

2. 导出报表数据到变量

# 替换为目标报表ID
$reportId = "YOUR_REPORT_ID"

# 调用导出API
$exportUrl = "https://api.$region.analytics.ibm.com/v1/instances/$instanceId/reports/$reportId/export"
$exportResponse = Invoke-RestMethod -Uri $exportUrl -Method Get -Headers @{
    "Authorization" = "Bearer $accessToken"
    "Accept" = "application/json" # 可改为text/csv获取CSV格式数据
}

# 数据存入PowerShell变量
$reportData = $exportResponse.data
# 预览数据
$reportData | Format-Table -AutoSize

C# 代码示例

1. 获取IAM访问令牌

using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;

class IBMWorkspaceDataExporter
{
    static async Task<string> GetIAMToken(string apiKey)
    {
        using var client = new HttpClient();
        var formData = new FormUrlEncodedContent(new Dictionary<string, string>
        {
            {"grant_type", "urn:ibm:params:oauth:grant-type:apikey"},
            {"apikey", apiKey}
        });

        var response = await client.PostAsync("https://iam.cloud.ibm.com/identity/token", formData);
        response.EnsureSuccessStatusCode();

        var tokenResult = await response.Content.ReadAsAsync<dynamic>();
        return tokenResult.access_token;
    }
}

2. 导出报表数据到变量

static async Task<dynamic> ExportReport(string accessToken, string region, string instanceId, string reportId)
{
    using var client = new HttpClient();
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

    var exportUrl = $"https://api.{region}.analytics.ibm.com/v1/instances/{instanceId}/reports/{reportId}/export";
    var response = await client.GetAsync(exportUrl);
    response.EnsureSuccessStatusCode();

    var reportResult = await response.Content.ReadAsAsync<dynamic>();
    return reportResult.data;
}

// 调用示例
static async Task Main(string[] args)
{
    string apiKey = "YOUR_IBM_CLOUD_API_KEY";
    string instanceId = "YOUR_ANALYTICS_WORKSPACE_INSTANCE_ID";
    string region = "us-south";
    string reportId = "YOUR_REPORT_ID";

    string token = await GetIAMToken(apiKey);
    var reportData = await ExportReport(token, region, instanceId, reportId);

    // 遍历输出数据示例
    foreach (var item in reportData)
    {
        Console.WriteLine(item.ToString());
    }
}

关键注意事项

  • 所有YOUR_*占位符需替换为实际值,可在IBM Cloud控制台的Analytics Workspace实例详情、报表页面获取。
  • 支持导出格式:application/json(结构化数据)、text/csv(表格格式),修改Accept请求头即可切换。
  • 若使用OAuth 2.0授权码流而非API密钥,需调整令牌获取逻辑,参考IBM IAM官方认证文档。

内容的提问来源于stack exchange,提问作者LambdaStudent001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:25:22