f# - BigQuery API 权限不足异常

标签 f# google-bigquery

尝试列出项目中的数据集(通过 service.Datasets.List)时,我从 BigQuery 收到“权限不足”异常。我需要做什么才能授予此权限?完整的 F# 源代码:

open System
open System.IO
open System.Threading

open Google.Apis.Auth.OAuth2
open Google.Apis.Bigquery.v2
open Google.Apis.Bigquery.v2.Data
open Google.Apis.Services

let private service =
    let credential =
        let secrets =
            use stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)
            GoogleClientSecrets.Load(stream).Secrets
        let task =
            GoogleWebAuthorizationBroker.AuthorizeAsync(
                secrets,
                [| BigqueryService.Scope.Bigquery |],
                "user",
                CancellationToken.None)
        printfn "Authenticating"
        task
            |> Async.AwaitTask
            |> Async.RunSynchronously
    let initializer = new BaseClientService.Initializer(HttpClientInitializer = credential)
    new BigqueryService(initializer)

[<EntryPoint>]
let main argv =
    let projectId = "{MyProjectId}"
    let list = service.Datasets.List(projectId).Execute()
    for dataset in list.Datasets do
        printfn "%A" dataset.FriendlyName
    0

最佳答案

事实证明,我错过了样板代码的关键行:

GoogleWebAuthorizationBroker.Folder <- "Tasks.Auth.Store";

我不太明白这是做什么的(文档非常稀疏),但是添加这一行解决了问题。

关于f# - BigQuery API 权限不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234203/

相关文章:

generics - 将 F# 泛型函数限制为联合类型?

sql - 对多个 customDimensions 进行过滤然后聚合

将空整数插入 Google bigquery

google-bigquery - bigquery 从日期中提取纪元

google-analytics - 谷歌分析模式

r - F#:程序集引用 RDotNet.dll 未找到或无效

css - 如何使 FsLab 表格渲染得很好?

f# - "expression problem"可以在 F# 中解决吗?

c# - 是否可以从 Intellisense 发现中将模块函数标记为 "hidden"?

google-bigquery - 如何在 BigQuery 中使用 TABLE_QUERY() 函数?