使用 GTMAppAuth 在 Swift 中调用 Google 工作表 API

Calling Google Sheets API in Swift with GTMAppAuth

我正在尝试在 macOS 上 read/write 到 Google 表格 Swift。 我正在使用 GAppAuth library which in turn makes use of GTMAppAuth.

我设法获得授权并取回了访问令牌和刷新令牌,但是当我尝试调用 Google 表格的端点之一时,我仍然收到 HTTP 状态代码 403 .

applicationDidFinishLaunching(_:)中,我附加了以下授权范围,详见documentation

GAppAuth.shared.appendAuthorizationRealm("https://www.googleapis.com/auth/spreadsheets.readonly")

但是,我仍然收到 403。我做错了什么?我是否正确添加了范围?

这是我调用 API 的代码:

@IBAction func getSpreadsheet(_ sender: NSButton) {
    
    let fetcherService = GTMSessionFetcherService()
    fetcherService.authorizer = authorization
    let spreadsheetInfo = URL(string: "https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetID}")
    let fetcher = GTMSessionFetcher(url: spreadsheetInfoEndpoint)
    fetcher.beginFetch { (data, error) in
        //Error code 403
    }
}

我通过使用 Google API Explorer 查看 cURL 请求使其正常工作。缺少访问令牌参数:

https://sheets.googleapis.com/v4/spreadsheets/[SPREADSHEETID]/values/[RANGE]?access_token=[access_token]

也感谢Jacques-Guzel Heron,在评论区让我知道了官方Google Auth Library for Swift。我去看看。