こちらの続きです。
プッシュ通知のテスト送信
任意のタイミングでプッシュ通知を送る前に、OneSignalの管理画面からプッシュ通知をテスト送信してみます。
○管理画面 > Audience > All Users
既にOneSignalのユーザー登録ができている状況かと思いますので、赤矢印の箇所でTest Userとして追加します。

○管理画面 > Messages > New Push
MessageでJapaneseを追加し、右側の「Send to Test Device」を選択します。

送信します。

すると、下記のように通知が表示されました。

もし、上記で表示されない場合は、通知設定を見直してみてください。
Railsへ実装
下記へ記載の通りでやってみます。
適当にRailsのルーティングを作成します。
※適宜ご自身のアプリケーション内で使用している単語に変換してください。
post 'onesignal/send_notification', to: 'users#send_notification', as: 'send_notification'
テストを行いたいViewへリンクを設置
<%= link_to send_notification_path, method: :post do %>
OneSignal テスト通知
<% end %>
アクションを追加
def send_notification
params = {"app_id" => "85d1787-ef63-451f-9def-26fd86bf7ec7",
"contents" => {'en' => 'test', 'ja' => 'テスト送信'},
"include_player_ids" => ["6392d91a-b206-4b7b-a620-cd68e32c3a76"]
}
uri = URI.parse('https://onesignal.com/api/v1/notifications')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path,'Content-Type' => 'application/json;charset=utf-8')
request.body = params.as_json.to_json
response = http.request(request)
puts response.body
end
実際に動かしてみるとこんな感じです。
contentsやinclude_player_idsをそれぞれサーバー内の処理時に動的に変更を加えれば、任意のタイミング・任意のユーザーへ通知をすることが可能ですね。
今回は、基本的な実装を紹介しましたが、OneSignalにはさまざまなオプションが用意されております。
・件名やサブタイトル
・クリック時の遷移先URLの指定
・通知するタイミングを指定
使い方次第ですが、これらを使うことで、ユーザーに対してより良い体験を提供することができそうです。
参考になれば幸いです。