expo-community / expo-server-sdk-ruby

A Ruby library for sending push notifications with Expo's notification service
MIT License
95 stars 53 forks source link

JSON::ParserError: 784: unexpected token at '' #27

Open styrken opened 5 years ago

styrken commented 5 years ago

When sending push messages i often get this error back from the gem:

"\x1F\x8B\b\x00\x00\x00\x00\x00\x00\x03uT1\x8E\x1C0\b\xFC\xCB\xD6\x87\x04\x06\x83}_\x89R`\xB0\xA5(E\x8A\xBBTQ\xFE\x1E\xF6R$R\xE2f\xB5\xDA\xF5\xC00\xCC\xF0\xE3\x91\xFE\xEE\x8F\xD7O?\x1Eo\xEF\xFE\xFE\xFD\xED\xF1\xFA\xF8\xF6\xF5\xF1\xF2\xF8\x92\xF5\xADcG\xF3\xD9\xE1X(H\xD2\x84%\xE1\x90\xDA(\xD37\x1D\x1A\x8F\x9F/\xFF\xC5\x06-\x9F+\x12\xDC\xA7\x814\xEE0vk0q\xE6\xE9\xBC\xC3\xF4\xDC\xB0\xCC94}\x01\x92;H\x9F\fUd\x00g\xF8\xD6!\x88\xC97\xAC\xB25Y\xB1`\xED\x95\xC5\x19\x03\x9C\xDD =i{\x95\xAA\xFFoX\xF3a]\x9C\x01U\x05dR\xF5={\x03\x1D=1:n]\xFB\x86\xCD\b\xCF3\x9Et[a\xDDJ+\xD5\x00\x1D\x8B<f4\x1F\xFD\x86%\xA5\xC5\xCE\ef\xE1@\x86d}k\xBBt6\x92\"\xCD\xD1\xE9\x86Et\xC7\"\b\xFE\x81\xDD3\x9E\x12;\xD4\xB8\x9A\x9Bu\xBA\xE0\r;X\x98\x0F\x1A\xC4\x11\x02\xD1'\x83\x10\x87M\r-x\xCE\xAAq\xC3\xD6C$$\x83\xAEr@bJ\xB5\xF4\x06\xBB\x9Dy\x9CO4\x92\x0F\xECo7X\xFD\xC0\xE5\x81e\xAD$Bl\xCFN\x02hh\x9D\x8At\x10U\xE5\xBF\xFB\\\xFA\x8A\xA0\xEE>\x15j\e\xB3*\xED\xD2\xAAv\x03A\x9D\xA9\x9C\xD5\xB7\xC7u^-\n\xDDj)\xB9\xB8\xB0\xBA`V{\xA0}j\xCD]Q\xFD:\xEFA.}X@\xB5l!\xDD\x05\xD6\x12\xAC\xFD\xEA\x96n\x133\xF2\xBA\xA3\xA9=h7\xE0\xB0\x05bJ\xE01\x10\xF6\xC0\xF43\e\xADv\xE5\x1Cd;Z\xF62C\xD9B\xEA%\x8CQ\x9EL\x14\x99{p\xE4\xB9z\xE3\x84r\xEE\xAD@\xF6\xE4\xAC\xB3R\x819\x00\xFD\xC8Z\xBA\xBC\xB5\xAB\x9F\x05\x97b\xE3\t\xFE\x91\x85m\xFC\xCC\xAF@699\xFA\xA4e\xEB\x86\xAD\x98\xD9\xACG\xA0V\x1F\xB2\xB8\xAE\x00\xAD\x12\x8CF\xF4\x138[\xBBj\xE5>\xBCU\xFC\v6j\xDE^&\x99\xA71$\x8D5}\xD5\xE1\xA1\xEB\xDD\xF0\xA8s5|\x80e\xAFy\x85\x12\x86g\x05q\xCD\xEC\x91#j\xEFW\x9D\x13\x8D+\xFD\xE5&\xDF\xD5\xB7\n\xCC5\bvh\xAD`m5\xBEr\x96*\xBF1\xA5\xEE\xE43G\xFD$\xACSY`\x1F|\xCE$\xEFz\xDDQ;<\x87\xD6\x89$\xB1VC{y\xE3\x94Vm\xB6\x8A\x92\x95\xB5g\xFC\xC9\x11\x17\x97N\xCD\x00\x9B\xD6\xEB\x93\x95\xA3\x11\flZ\xBB41^\xFF\xE4\xE8\xF3\xCF_\xBB\xB8\xEC!\xE6\x05\x00\x00"
rake aborted!
JSON::ParserError: 784: unexpected token at ''
/srv/storage/sites/domain.com/shared/bundle/ruby/2.4.0/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
/srv/storage/sites/domain.com/shared/bundle/ruby/2.4.0/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
/srv/storage/sites/domain.com/shared/bundle/ruby/2.4.0/gems/exponent-server-sdk-0.0.6/lib/exponent-server-sdk.rb:69:in `parse_json'
/srv/storage/sites/domain.com/shared/bundle/ruby/2.4.0/gems/exponent-server-sdk-0.0.6/lib/exponent-server-sdk.rb:60:in `handle'
/srv/storage/sites/domain.com/shared/bundle/ruby/2.4.0/gems/exponent-server-sdk-0.0.6/lib/exponent-server-sdk.rb:20:in `publish'
/srv/storage/sites/domain.com/releases/20190514123305/app/models/news_push_notifier.rb:20:in `block in deliver_all'
/srv/storage/sites/domain.com/releases/20190514123305/app/models/news_push_notifier.rb:19:in `each'
/srv/storage/sites/domain.com/releases/20190514123305/app/models/news_push_notifier.rb:19:in `each_slice'
/srv/storage/sites/domain.com/releases/20190514123305/app/models/news_push_notifier.rb:19:in `deliver_all'
/srv/storage/sites/domain.com/releases/20190514123305/lib/tasks/push.rake:5:in `block (3 levels) in <top (required)>'
/srv/storage/sites/domain.com/shared/bundle/ruby/2.4.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:74:in `load'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:74:in `kernel_load'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:28:in `run'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/cli.rb:463:in `exec'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/cli.rb:27:in `dispatch'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/cli.rb:18:in `start'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/exe/bundle:30:in `block in <top (required)>'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/home/web/.rvm/gems/ruby-2.4.2/gems/bundler-2.0.1/exe/bundle:22:in `<top (required)>'
/home/web/.rvm/gems/ruby-2.4.2/bin/bundle:23:in `load'
/home/web/.rvm/gems/ruby-2.4.2/bin/bundle:23:in `<main>'
/home/web/.rvm/gems/ruby-2.4.2/bin/ruby_executable_hooks:15:in `eval'
/home/web/.rvm/gems/ruby-2.4.2/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => dk:push:execute
(See full trace by running task with --trace)

It seems to be related with the returned json from the expo server.

My code looks like this

   client = Exponent::Push::Client.new(gzip: true)
    messages = Device.all.map { |device|
      {
          to: device.device_token,
          sound: "default",
          body: "Todays news is ready for you"
      }
    }

    puts "Messages to deliver: " + messages.count.to_s
    puts messages.to_s

    if messages.count > 0
      messages.each_slice(25) do |slide|
        resp = client.publish slide
        puts resp.inspect
      end
    end
  end
lsmolic commented 5 years ago

I believe I have resolved this in #29. I was experiencing a similar situation

cassio-nuke commented 5 years ago

Hi @lsmolic I am experiencing similar issue.

D, [2019-06-27T18:07:58.590084 #7793] DEBUG -- : [fffb180b-23a1-47c7-9d52-9ab402046141] ETHON: Libcurl initialized
D, [2019-06-27T18:08:00.110359 #7793] DEBUG -- : [fffb180b-23a1-47c7-9d52-9ab402046141] ETHON: performed EASY effective_url=https://exp.host/--/api/v2/push/send response_code=200 return_code=ok total_time=1.519483
I, [2019-06-27T18:08:00.110958 #7793]  INFO -- : [fffb180b-23a1-47c7-9d52-9ab402046141] Completed 500 Internal Server Error in 1531ms (ActiveRecord: 2.1ms)
D, [2019-06-27T18:08:00.130446 #7793] DEBUG -- : [fffb180b-23a1-47c7-9d52-9ab402046141] Raven HTTP Transport connecting to https://sentry.io
F, [2019-06-27T18:08:00.827580 #7793] FATAL -- : [fffb180b-23a1-47c7-9d52-9ab402046141]   
F, [2019-06-27T18:08:00.827698 #7793] FATAL -- : [fffb180b-23a1-47c7-9d52-9ab402046141] JSON::ParserError (751: unexpected token at '):
F, [2019-06-27T18:08:00.827743 #7793] FATAL -- : [fffb180b-23a1-47c7-9d52-9ab402046141]   
F, [2019-06-27T18:08:00.827794 #7793] FATAL -- : [fffb180b-23a1-47c7-9d52-9ab402046141] app/controllers/dashboard_controller.rb:29:in `block in send_notifications'
[fffb180b-23a1-47c7-9d52-9ab402046141] app/controllers/dashboard_controller.rb:27:in `each'
[fffb180b-23a1-47c7-9d52-9ab402046141] app/controllers/dashboard_controller.rb:27:in `each_slice'
[fffb180b-23a1-47c7-9d52-9ab402046141] app/controllers/dashboard_controller.rb:27:in `with_index'
[fffb180b-23a1-47c7-9d52-9ab402046141] app/controllers/dashboard_controller.rb:27:in `send_notifications'

Can you clarify on how to use your modifications? I saw that it has not been merged into master yet. Is it ready for production?

Thanks in advance

lsmolic commented 4 years ago

@cassio-nuke I've resolve this. It was an awful error with the Http Request library, but it is resolved in my tests. I need help getting my PR merged. Do you know who has merge ability?