getting UnableToDeserializePostBody
wdiechmann opened this issue · comments
General information / context
Logging in works and so does viewing calendar events (index action)
Describe the bug
When trying to POST an event I get the error mentioned in the issue subject
the request is
endpoint = "/v1.0/me/events"
headervals = {:Authorization=>
"Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6ImtLTjdCU09VWjNGbGMtbERoSzFUU2x1WENkTTRrcFpDTTEyaXFadWpZOTAiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWMFRPSSIsImtpZCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWMFRPSSJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9kNGM3MDVkMy1kMTFkLTQzNzMtYWQ3OS0wZTE4YTBmYTg3MjUvIiwiaWF0IjoxNjY2MDAzMjM1LCJuYmYiOjE2NjYwMDMyMzUsImV4cCI6MTY2NjAwNzQ5MSwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFWUUFxLzhUQUFBQW9La28yTDhEdk0zMlhoTGxXOThjR0J2TFZ5Ryt3em5YSnlvY0FHT2V3K2ZCeUhQSXhyWVB0eGhGKzg3VU1TelZRUUQ4VTlQeG5mM2RmL2RRcnRmRXN3RDJYS0xjYkRTOFJ4alBudS9qNHM0PSIsImFtciI6WyJwd2QiLCJtZmEiXSwiYXBwX2Rpc3BsYXluYW1lIjoiVGVzdGluZyBSdWJ5IEludGVncmF0aW9uIiwiYXBwaWQiOiI1MTRmOTc0OS0xMzAzLTRiMWQtOWRlNy1lYjhiZTBhNGY2NDQiLCJhcHBpZGFjciI6IjEiLCJmYW1pbHlfbmFtZSI6IkRpZWNobWFubiIsImdpdmVuX25hbWUiOiJXYWx0aGVyIiwiaWR0eXAiOiJ1c2VyIiwiaXBhZGRyIjoiMTU4LjI0OC4xNjYuODIiLCJuYW1lIjoiV2FsdGhlciBEaWVjaG1hbm4iLCJvaWQiOiJkYzM5NTgxZi1jMWIwLTQxMTEtODM4OC04NTE2ODhjOTUyOWMiLCJwbGF0ZiI6IjUiLCJwdWlkIjoiMTAwMzAwMDA4QTA3MTFFQiIsInJoIjoiMC5BUXdBMHdYSDFCM1JjME90ZVE0WW9QcUhKUU1BQUFBQUFBQUF3QUFBQUFBQUFBQU1BQzAuIiwic2NwIjoiQ2FsZW5kYXJzLlJlYWRXcml0ZSBlbWFpbCBNYWlsYm94U2V0dGluZ3MuUmVhZCBvcGVuaWQgcHJvZmlsZSBVc2VyLlJlYWQiLCJzaWduaW5fc3RhdGUiOlsia21zaSJdLCJzdWIiOiIzYkFhU1BjTzNIM2dkZV80cnZzZjJzdkVfREVIMEl4MjVzdTIyb1VrSkhZIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6IkVVIiwidGlkIjoiZDRjNzA1ZDMtZDExZC00MzczLWFkNzktMGUxOGEwZmE4NzI1IiwidW5pcXVlX25hbWUiOiJ3YWx0QGFsY28uZGsiLCJ1cG4iOiJ3YWx0QGFsY28uZGsiLCJ1dGkiOiI5QjJQNlFvd1EwaXBhVzhQS1kxRUFBIiwidmVyIjoiMS4wIiwid2lkcyI6WyI2MmU5MDM5NC02OWY1LTQyMzctOTE5MC0wMTIxNzcxNDVlMTAiLCJiNzlmYmY0ZC0zZWY5LTQ2ODktODE0My03NmIxOTRlODU1MDkiXSwieG1zX3N0Ijp7InN1YiI6ImYwSEIzWjM1UUhUcWFObDRtd2ppbEVPNEhJNVlGa2VqSWU2a0xveXJ5MVkifSwieG1zX3RjZHQiOjE0MDA4MzQxNjMsInhtc190ZGJyIjoiRVUifQ.ioSBBJqgMr_Hp1r0b9XzzRSPAmSqT0aHYqQ8UCDkBJ1gbOtoag24a6ILzGlcIVGpH32UvVhW-UnqNi6mpeQesAns11kmvFPj828YVlopTFpS8qcAznVhY_Cb4YySGtjJ4nn9l0svs20XLCqobnQi8DSS8YDjvtacWO5UYwXe33crXV6gb0gc7LfOQv5XJoSEn6gFpKiIkWJ8OKwMlmJHVwMCDvz8zLxA44Qw5wmIgllXRcyZSzRg2c5wgt0gplSJt3U8CGxrPAJAbxPmsM4v-MowWZrazX9Hd3pK45NA3ezRpCLfSsb-UOH9F6mmCQ-EOm4PsUTDbtxCQzTn0C1Qbg",
:Accept=>"application/json"}
params = {}
body = "{\"subject\":\"test fra Ruby uden attendees\",\"start\":{\"dateTime\":\"2022-10-17T15:00\",\"timeZone\":\"Romance Standard Time\"},\"end\":{\"dateTime\":\"2022-10-17T16:00\",\"timeZone\":\"Romance Standard Time\"},\"body\":{\"contentType\":\"text\",\"content\":\"is this the problem\"}}"
HTTParty.post "#{GRAPH_HOST}#{endpoint}",
headers: headervals,
query: params,
body: payload ? payload.to_json : nil
the response is
{"error"=>{"code"=>"UnableToDeserializePostBody", "message"=>"were unable to deserialize "}}
To Reproduce
Steps to reproduce the behavior:
- git clone
- follow the instructions verbatim
- create an event
- See error
Expected behavior
A response.code == 201
Screenshots
Desktop
- OS: macOS 12.3.1 (MBA M1)
- Browser: Chrome
- Version: 106.0.5249.119
Dependency versions
GEM
remote: https://rubygems.org/
specs:
actioncable (7.0.4)
actionpack (= 7.0.4)
activesupport (= 7.0.4)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.4)
actionpack (= 7.0.4)
activejob (= 7.0.4)
activerecord (= 7.0.4)
activestorage (= 7.0.4)
activesupport (= 7.0.4)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.0.4)
actionpack (= 7.0.4)
actionview (= 7.0.4)
activejob (= 7.0.4)
activesupport (= 7.0.4)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.4)
actionview (= 7.0.4)
activesupport (= 7.0.4)
rack (~> 2.0, >= 2.2.0)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (7.0.4)
actionpack (= 7.0.4)
activerecord (= 7.0.4)
activestorage (= 7.0.4)
activesupport (= 7.0.4)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.4)
activesupport (= 7.0.4)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (7.0.4)
activesupport (= 7.0.4)
globalid (>= 0.3.6)
activemodel (7.0.4)
activesupport (= 7.0.4)
activerecord (7.0.4)
activemodel (= 7.0.4)
activesupport (= 7.0.4)
activerecord-session_store (2.0.0)
actionpack (>= 5.2.4.1)
activerecord (>= 5.2.4.1)
multi_json (~> 1.11, >= 1.11.2)
rack (>= 2.0.8, < 3)
railties (>= 5.2.4.1)
activestorage (7.0.4)
actionpack (= 7.0.4)
activejob (= 7.0.4)
activerecord (= 7.0.4)
activesupport (= 7.0.4)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (7.0.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
addressable (2.8.1)
public_suffix (>= 2.0.2, < 6.0)
bindex (0.8.1)
bootsnap (1.13.0)
msgpack (~> 1.2)
builder (3.2.4)
capybara (3.37.1)
addressable
matrix
mini_mime (>= 0.1.3)
nokogiri (~> 1.8)
rack (>= 1.6.0)
rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2)
childprocess (4.1.0)
concurrent-ruby (1.1.10)
crass (1.0.6)
debug (1.6.2)
irb (>= 1.3.6)
reline (>= 0.3.1)
erubi (1.11.0)
faraday (2.6.0)
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.1)
globalid (1.0.0)
activesupport (>= 5.0)
hashie (5.0.0)
httparty (0.20.0)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
importmap-rails (1.1.5)
actionpack (>= 6.0.0)
railties (>= 6.0.0)
io-console (0.5.11)
irb (1.4.2)
reline (>= 0.3.0)
jbuilder (2.11.5)
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
jwt (2.5.0)
loofah (2.19.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
mini_mime (>= 0.1.1)
marcel (1.0.2)
matrix (0.4.2)
method_source (1.0.0)
mime-types (3.4.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2022.0105)
mini_mime (1.1.2)
minitest (5.16.3)
msgpack (1.6.0)
multi_json (1.15.0)
multi_xml (0.6.0)
net-imap (0.3.1)
net-protocol
net-pop (0.1.2)
net-protocol
net-protocol (0.1.3)
timeout
net-smtp (0.3.2)
net-protocol
nio4r (2.5.8)
nokogiri (1.13.8-arm64-darwin)
racc (~> 1.4)
oauth2 (2.0.9)
faraday (>= 0.17.3, < 3.0)
jwt (>= 1.0, < 3.0)
multi_xml (~> 0.5)
rack (>= 1.2, < 4)
snaky_hash (~> 2.0)
version_gem (~> 1.1)
omniauth (2.1.0)
hashie (>= 3.4.6)
rack (>= 2.2.3)
rack-protection
omniauth-oauth2 (1.8.0)
oauth2 (>= 1.4, < 3)
omniauth (~> 2.0)
omniauth-rails_csrf_protection (1.0.1)
actionpack (>= 4.2)
omniauth (~> 2.0)
public_suffix (5.0.0)
puma (5.6.5)
nio4r (~> 2.0)
racc (1.6.0)
rack (2.2.4)
rack-protection (3.0.2)
rack
rack-test (2.0.2)
rack (>= 1.3)
rails (7.0.4)
actioncable (= 7.0.4)
actionmailbox (= 7.0.4)
actionmailer (= 7.0.4)
actionpack (= 7.0.4)
actiontext (= 7.0.4)
actionview (= 7.0.4)
activejob (= 7.0.4)
activemodel (= 7.0.4)
activerecord (= 7.0.4)
activestorage (= 7.0.4)
activesupport (= 7.0.4)
bundler (>= 1.15.0)
railties (= 7.0.4)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.4.3)
loofah (~> 2.3)
railties (7.0.4)
actionpack (= 7.0.4)
activesupport (= 7.0.4)
method_source
rake (>= 12.2)
thor (~> 1.0)
zeitwerk (~> 2.5)
rake (13.0.6)
regexp_parser (2.6.0)
reline (0.3.1)
io-console (~> 0.5)
rexml (3.2.5)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
selenium-webdriver (4.5.0)
childprocess (>= 0.5, < 5.0)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
snaky_hash (2.0.1)
hashie
version_gem (~> 1.1, >= 1.1.1)
sprockets (4.1.1)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.4.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
sqlite3 (1.5.3-arm64-darwin)
stimulus-rails (1.1.0)
railties (>= 6.0.0)
thor (1.2.1)
timeout (0.3.0)
turbo-rails (1.3.1)
actionpack (>= 6.0.0)
activejob (>= 6.0.0)
railties (>= 6.0.0)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
version_gem (1.1.1)
web-console (4.2.0)
actionview (>= 6.0.0)
activemodel (>= 6.0.0)
bindex (>= 0.4.0)
railties (>= 6.0.0)
webdrivers (5.2.0)
nokogiri (~> 1.6)
rubyzip (>= 1.3.0)
selenium-webdriver (~> 4.0)
websocket (1.2.9)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.1)
PLATFORMS
arm64-darwin-21
DEPENDENCIES
activerecord-session_store (~> 2.0.0)
bootsnap
capybara
debug
httparty (~> 0.20.0)
importmap-rails
jbuilder
omniauth-oauth2 (~> 1.8.0)
omniauth-rails_csrf_protection (~> 1.0.1)
puma (~> 5.0)
rails (~> 7.0.4)
selenium-webdriver
sprockets-rails
sqlite3 (~> 1.5)
stimulus-rails
turbo-rails
tzinfo-data
web-console
webdrivers
RUBY VERSION
ruby 3.1.2p20
BUNDLED WITH
2.3.22
Further I tried my luck with https://learn.microsoft.com/da-dk/graph/api/user-post-events?view=graph-rest-1.0&tabs=http (the example 1 request) to no avail
Finally I desided to test what @nikithauc said is working in this issue: microsoftgraph/msgraph-sdk-javascript#404 (comment) - regrettably with no luck either
so - if I change the make_api_call
to look like this
def make_api_call(method, endpoint, token, headervals = nil, params = nil, payload = nil)
headervals ||= {}
headervals[:Authorization] = "Bearer #{token}"
headervals[:Accept] = 'application/json'
params ||= {}
case method.upcase
when 'GET'
HTTParty.get "#{GRAPH_HOST}#{endpoint}",
headers: headervals,
query: params
when 'POST'
headervals['Prefer'] = 'outlook.timezone="UTC"'
headervals['Content-Type'] = 'application/json'
HTTParty.post "#{GRAPH_HOST}#{endpoint}",
headers: headervals,
query: params,
body: payload ? payload.to_json : nil
else
raise "HTTP method #{method.upcase} not implemented"
end
end
we're good
not sure why this was closed. I sent a pull request to set the header correctly since I ran into the same issue today.
I closed it - with a comment detaliing the issue - but without the 'guts' to suggest a PR 🥲
Thanks to you both! I had renamed the parameter but missed updating it on that line :(.