我正在开发一个iOS应用来显示我的博客/网站上的公开信息。根据Google开发人员指南中的建议,在“Google Developers Console”下创建了iOS公共API密钥,并在我的项目中包含了GTL客户端库和所需的源代码。还在Google Developer Console中启用了博客V3 API。
当我执行查询以使用blogID报告获取博客时出现以下错误:
发生错误!错误域= com.google.GTLJSONRPCErrorDomain代码= 403"(权限不足)" UserInfo = {error =权限不足,NSLocalizedFailureReason =(权限不足),GTLStructuredError = GTLErrorObject 0x7fe743766030:{message:"权限不足"数据:[1]代码:403}}
Code Snippest:
let bloggerService : GTLServiceBlogger = GTLServiceBlogger()
override func viewDidLoad() {
super.viewDidLoad()
self.bloggerService.authorizer = GTMOAuth2ViewControllerTouch.authForGoogleFromKeychainForName(kKeychainItemName as String, clientID: kClientID, clientSecret: nil)
bloggerService.APIKey = kAPIKey;
let query : GTLQueryBlogger = GTLQueryBlogger.queryForBlogsGetWithBlogId(kBlogID)
self.bloggerService.executeQuery(query, completionHandler: { (ticket, blogList , error) -> Void in
if error == nil {
print("Blog list = \(blogList)")
} else {
print("An Error Occurred! \(error)")
self.showAlert(“Error”, message: "Sorry, an error occurred!")
}
})
如果我注释掉授权码(self.bloggerService.authorizer = GTMOAuth2ViewControllerTouch.authForGoogleFromKeychainForName(kKeychainItemName as String, clientID: kClientID, clientSecret: nil)
),则错误会有所不同:
发生错误!错误域= com.google.GTLJSONRPCErrorDomain代码= 403"(您的API密钥上配置了每IP或每个Referer限制,但请求与这些限制不符。请使用Google Developers Console更新您的如果允许来自此IP或引荐来源的请求,则为API密钥配置。)" UserInfo = {error =在您的API密钥上配置了每IP或每个Referer限制,并且请求与这些限制不匹配。如果应允许来自此IP或引荐来源的请求,请使用Google Developers Console更新API密钥配置。,NSLocalizedFailureReason =(您的API密钥上配置了每IP或每个Referer限制且请求与这些不匹配如果允许来自此IP或引荐来源的请求,请使用Google Developers Console更新您的API密钥配置。),GTLStructuredError = GTLErrorObject 0x7fe41945b170:{message:"有每个IP或每个Referer限制在您的API密钥上配置,请求与这些限制不匹配。如果应允许来自此IP或引荐来源的请求,请使用Google Developers Console更新您的API密钥配置。"数据:[1]代码:403}}
有人可以帮我解决这个问题吗?
注意:实际上,当我在Google API Explorer(“https://developers.google.com/apis-explorer/#p/blogger/v3/blogger.blogs.get”)中运行此HTTP请求时,它会返回JSON响应。