facebook / facebook-ruby-business-sdk

Ruby SDK for Meta Marketing API
https://developers.facebook.com/docs/business-sdk
Other
204 stars 161 forks source link

JSON parsing fails in Rails 7.1 apps #207

Open tdutreui-solocal opened 8 months ago

tdutreui-solocal commented 8 months ago

Which SDK version are you using?

18.0.2

What's the issue?

unexpected token at 'from response' (JSON::ParserError)

from /usr/local/lib/ruby/3.2.0/json/common.rb:216:in `parse'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/api_response.rb:18:in `result'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/ad_object.rb:122:in `block (3 levels) in <class:AdObject>'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/api_request.rb:58:in `create_response'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/api_request.rb:41:in `execute_now'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/api_request.rb:36:in `execute'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/ad_object.rb:120:in `block (2 levels) in <class:AdObject>'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/edge.rb:52:in `fetch_next_page'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/edge.rb:19:in `[]'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/facebookbusiness-18.0.2/lib/facebook_ads/edge.rb:33:in `each'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/activesupport-7.1.1/lib/active_support/core_ext/enumerable.rb:150:in `map'
    from /home/effilab/vendor/bundle/ruby/3.2.0/gems/activesupport-7.1.1/lib/active_support/core_ext/enumerable.rb:150:in `pluck'

Steps/Sample code to reproduce the issue

Call the owned_ad_accounts method with any valid parameters

FacebookAds::Business.get(...).owned_ad_accounts(
      search_query: query,
      fields: %i[account_id],
      limit: 10
    ).pluck(:account_id)

this Gemfile works:

gem "actionpack", "7.0.8"
gem "activemodel", "7.0.8"
gem "activerecord","7.0.8"
gem "railties", "7.0.8"

this Gemfile doesn't :

gem "actionpack", "7.1.0" # or above
gem "activemodel", "7.1.0"
gem "activerecord","7.1.0"
gem "railties", "7.1.0"