提问人:Ozge Cokyasar 提问时间:7/2/2019 最后编辑:AlexanderOzge Cokyasar 更新时间:2/3/2020 访问量:330
Rails - Heroku - 推送通知通过 Postman 工作,但不能通过我的 Rails API 工作
Rails - Heroku - Push notifications work via Postman but not via my Rails API
问:
我想使用 expo 向设备发送推送通知。 我成功地为每个启用了访问权限的设备获取了expo_push_token,并且我还能够使用 Postman 成功发出请求。 这是我的邮递员请求: POST 请求:https://exp.host/--/api/v2/push/send
{
"to": "ExponentPushToken[xxx]",
"title": "yesahhhh",
"body": "lkajdsljaslda"
}
标头包括:
Accept: application/json
Content-type: application/json
Accept encoding: gzip, deflate
Host: exp.host
因此,上述工作应通过邮递员进行。
但是,当我运行 Heroku 命令时,我无法让它工作:heroku run rake run_job
run_job方法在我的 rails 应用程序中有 2 个地方引用:
lib/task/scheduler.rake
:
task :run_job => :environment do
puts "Running Job..."
User.run_job
puts "done!"
end
user.rb
:
def self.run_job
User.all.each do |u|
if u.expo_push_token.present?
require 'net/http'
require 'json'
begin
uri = URI('https://exp.host/--/api/v2/push/send')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json', 'Accept' => 'application/json'})
request.body = {to: u.expo_push_token, title: "Prana", body: "Time to affirm and visualize"}.to_json
response = http.request(request)
puts "The Response: #{response.body}"
rescue => e
puts "failed #{e}"
end
end
end
end
用户成功收到expo_push_token,但未收到推送通知。
当我运行命令时,这是我在终端上得到的响应:heroku run rake run_job
Running rake run_job on ⬢ prana-app... up, run.7732 (Free)
Running Job...
D, [2019-07-01T19:17:31.215548 #4] DEBUG -- : User Load (2.1ms) SELECT "users".* FROM "users"
done!
我的 ruby 代码中缺少什么导致无法接收推送通知?
答: 暂无答案
评论