【问题标题】:open_http: 403 Forbidden (OpenURI::HTTPError)open_http: 403 禁止 (OpenURI::HTTPError)
【发布时间】:2024-01-10 23:17:02
【问题描述】:

我正在尝试使用此脚本从我的 Google+ API 中提取数据:

require 'open-uri'
require 'json'

google_api_key = 'put your google api key here'
page_id = '105672627985088123672'

data = open("https://www.googleapis.com/plus/v1/people/#{page_id}?key=#{google_api_key}").read    
obj = JSON.parse(data)

puts obj['plusOneCount'].to_i

但是,我不断收到此错误:

/Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:346:in `open_http': 403 Forbidden (OpenURI::HTTPError)
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:769:in `buffer_open'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:203:in `block in open_loop'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:201:in `catch'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:201:in `open_loop'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:146:in `open_uri'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:671:in `open'
    from /Users/xng/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/open-uri.rb:33:in `open'
    from gplus.rb:8:in `<main>'

我不确定这里出了什么问题,任何帮助都会很棒。

【问题讨论】:

  • 当您运行脚本时,您确定您实际上是在发送您的 API 密钥吗?你抄对了吗?有效吗?
  • 是的,我得到了正确的 api 密钥,只是没有在上面包含它。
  • 啊,我的错。我刚刚重新生成了 API 密钥并使用了新生成的密钥。现在可以了。
  • @jenn 添加你自己的答案,然后接受它

标签: ruby api https open-uri


【解决方案1】:

您的 google API 密钥似乎与 google 在其服务器中的密钥不匹配。因此,您需要确保使用正确的密钥。它是私人服务还是免费服务?

【讨论】:

    【解决方案2】:

    必须重新生成 API 密钥。

    【讨论】: