【发布时间】:2017-11-22 21:18:38
【问题描述】:
尝试将 Firebase 项目连接到 GoogleSheets 时出现错误
(lldb) po error
Error Domain=com.google.GTLRErrorObjectDomain Code=403 "The request is missing a valid API key." UserInfo={GTLRStructuredError=GTLRErrorObject 0x61000005c650: {errors:[1] message:"The request is missing a valid API key." code:403 status:"PERMISSION_DENIED"}, NSLocalizedDescription=The request is missing a valid API key.}
这是我的代码
let query = GTLRSheetsQuery_SpreadsheetsValuesGet
.query(withSpreadsheetId: spreadsheetId, range:range)
service.executeQuery(query,
delegate: self,
didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:))
func displayResultWithTicket(ticket: GTLRServiceTicket,
finishedWithObject result : GTLRSheets_ValueRange,
error : NSError?) {
if let error = error {
showAlert(title: "Error", message: error.localizedDescription)
return
}
我看到一个类似的问题Invalid API Key supplied using Firebase
我在https://console.developers.google.com/ 启用了 Google Sheets API 并刷新了 GoogleService-Info.plist。从模拟器中删除应用程序,重置模拟器并将其添加回来。
但我仍然得到错误
我正在使用
- GoogleAPIClientForREST (1.2.1)
- FirebaseAuth (4.0.0)
- GTMOAuth2 (1.1.4)
- GTMSessionFetcher (1.1.10)
我正在使用范围 kGTLRAuthScopeSheetsSpreadsheetsReadonly
我在 api explorer 中执行没有问题
GET https://sheets.googleapis.com/v4/spreadsheets/1o0kCH8As6Zx5q-n8KykaQS053ZkXMzLlc6PWiVnHipw?ranges=A1%3AB2&key={YOUR_API_KEY}
【问题讨论】:
-
Sheets api 要求您发送经过身份验证的请求,以防数据不公开,否则只需要 API 密钥。您确定您使用的库包含必要的 OAuth 信息吗?您能否在 Firebase 中正确进行身份验证?您可以在不使用 Firebase 的情况下使用该库吗?
标签: ios firebase google-sheets firebase-authentication google-sheets-api