使用 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。我去看看。
我正在尝试在 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。我去看看。