ruby-on-rails - RAILS 使用 API key RESTApi 向 onesignal 发送 get 请求

标签 ruby-on-rails onesignal

它是一个 RESTAPI,我需要向 onesignal 发送 get 请求。

网址=https://onesignal.com/api/v1/apps

他们提到的只是这样:

curl --include \
     --header "Authorization: Basic your_key_here" \
 https://onesignal.com/api/v1/apps

我尝试过这样的事情:

def index
    url = URI.parse('https://onesignal.com/api/v1/apps?apikey=mykey')
    req = Net::HTTP::Get.new(url.to_s)
    res = Net::HTTP.start(url.host, url.port) {|http|
      http.request(req)
    }
    puts res.body
  end

但这不起作用。 结果应为 json。

我收到此错误:

<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>

最佳答案

基于 OneSignal 的代码 webpage您的请求应该是:

uri = URI.parse("https://onesignal.com/api/v1/apps")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(
  uri.path,
  "Content-Type" => "application/json",
  "Authorization" => "Basic NGXXX...XXXBlNjJj"
)

response = http.request(request) 
puts response.body

在您的情况下,错误与不使用 http.use_ssl = true 相关,但您还需要添加其他一些内容,例如授权 header 。

关于ruby-on-rails - RAILS 使用 API key RESTApi 向 onesignal 发送 get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32564952/

相关文章:

ruby-on-rails - 何时使用 "validates_associated"v "validate => true"

ruby-on-rails - 在 Ruby 中下载的 Google 文档的路径在哪里?

ruby-on-rails - 如何将 trackable 添加到现有的 Devise 设置中?

javascript - 在 ionic 中使用 OneSignal 插件在通知单击时路由到应用程序中的状态

javascript - 如何将单个 html 表单发送到 OneSignal 服务器和另一个服务器

ruby-on-rails - 如何从 Visual Studio Code 运行和调试 Ruby on Rails?

html - Welcome#Index 中的 Ruby On Rails 语法错误

ios - 如何在处理通知时禁止 OneSignal 打开 WebView

java - Android Nougat 上的错误通知 : Couldn't expand RemoteViews for: StatusBarNotification.

java - OSNotificationPayload 无法转换为 JSONObject