{"action":"created","issue":{"url":"https://api.github.com/repos/coldfumonkeh/monkehTweets/issues/21","labels_url":"https://api.github.com/repos/coldfumonkeh/monkehTweets/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/coldfumonkeh/monkehTweets/issues/21/comments","events_url":"https://api.github.com/repos/coldfumonkeh/monkehTweets/issues/21/events","html_url":"https://github.com/coldfumonkeh/monkehTweets/issues/21","id":52019048,"number":21,"title":"Unable to post status update with a message containing exclamation mark","user":{"login":"boughtonp","id":167122,"avatar_url":"https://avatars.githubusercontent.com/u/167122?v=3","gravatar_id":"","url":"https://api.github.com/users/boughtonp","html_url":"https://github.com/boughtonp","followers_url":"https://api.github.com/users/boughtonp/followers","following_url":"https://api.github.com/users/boughtonp/following{/other_user}","gists_url":"https://api.github.com/users/boughtonp/gists{/gist_id}","starred_url":"https://api.github.com/users/boughtonp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boughtonp/subscriptions","organizations_url":"https://api.github.com/users/boughtonp/orgs","repos_url":"https://api.github.com/users/boughtonp/repos","events_url":"https://api.github.com/users/boughtonp/events{/privacy}","received_events_url":"https://api.github.com/users/boughtonp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2014-12-15T18:08:22Z","updated_at":"2015-09-16T20:45:20Z","closed_at":null,"body":"Posting \"test message\" works, but posting \"test message!\" results in:\r\n\r\n    {\"errors\":[{\"message\":\"Could not authenticate you\",\"code\":32}]} \r\n\r\nUpdated to latest code from GitHub master branch and it does the same thing.\r\n\r\nMost of the results on the web suggest this is an encoding problem (it's not just exclamation mark that is affected, comma and other characters are too), but dumping the arguments to httpOAuthCall it looks like the URL is encoded, so not sure that's it.\r\n\r\nOther search results suggest the request needs to be sent as \"application/x-www-form-urlencoded\" - the cfhttp is currently set to multipart (i.e. multipart/form-data), however if I turn multipart off it doesn't work at all (i.e. both \"test\" and \"test!\" fail with code 32).\r\n\r\nUsing the Twitter OAuth Tool, sending \"test message!\" is working (via curl) - but changing the status after generating the signing results will fail with code 32, so I'm guessing the status text is used to generate the nonce/signature (since they change on each request), but I can't see any obvious place in the monkehTweets code where this happens?\r\n\r\nAny thoughts?"},"comment":{"url":"https://api.github.com/repos/coldfumonkeh/monkehTweets/issues/comments/140889579","html_url":"https://github.com/coldfumonkeh/monkehTweets/issues/21#issuecomment-140889579","issue_url":"https://api.github.com/repos/coldfumonkeh/monkehTweets/issues/21","id":140889579,"user":{"login":"RosemaryONeill","id":4266543,"avatar_url":"https://avatars.githubusercontent.com/u/4266543?v=3","gravatar_id":"","url":"https://api.github.com/users/RosemaryONeill","html_url":"https://github.com/RosemaryONeill","followers_url":"https://api.github.com/users/RosemaryONeill/followers","following_url":"https://api.github.com/users/RosemaryONeill/following{/other_user}","gists_url":"https://api.github.com/users/RosemaryONeill/gists{/gist_id}","starred_url":"https://api.github.com/users/RosemaryONeill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RosemaryONeill/subscriptions","organizations_url":"https://api.github.com/users/RosemaryONeill/orgs","repos_url":"https://api.github.com/users/RosemaryONeill/repos","events_url":"https://api.github.com/users/RosemaryONeill/events{/privacy}","received_events_url":"https://api.github.com/users/RosemaryONeill/received_events","type":"User","site_admin":false},"created_at":"2015-09-16T20:45:20Z","updated_at":"2015-09-16T20:45:20Z","body":"In addition to !, for me it happens with (, ), and *."}}