Отправка почтового запроса, отправленного через HTTParty

Я работаю с Buffer App API с HTTParty, чтобы попытаться добавить сообщения через /updates/ create, но API, похоже, игнорирует мой параметр text и выдает ошибку. Если я делаю это через cURL в командной строке, все работает отлично. Вот мой код:

class BufferApp
    include HTTParty
    base_uri 'https://api.bufferapp.com/1'

    def initialize(token, id)
        @token = token
        @id = id
    end

    def create(text)
        BufferApp.post('/updates/create.json', :query =>  {"text" => text, "profile_ids[]" => @id, "access_token" => @token})
    end 
end

И я запускаю метод следующим образом:

BufferApp.new('{access_token}', '{profile_id}').create('{Text}')

Я добавил debug_output $stdout в класс, и, похоже, он публикует ОК:

POST /1/updates/create.json?text=Hello%20there%20why%20is%20this%20not%20working%3F&profile_ids[]={profile_id}&access_token={access_token} HTTP/1.1\r\nConnection: close\r\nHost: api.bufferapp.com\r\n\r\n"

Но я получаю сообщение об ошибке. Я что-то упустил?


person Pezholio    schedule 16.02.2012    source источник
comment
Не все сообщения об ошибках одинаковы. Обычно они содержат хотя бы намек на то, в чем заключается проблема, а иногда и излагают ее полностью. Другими словами, пожалуйста, предоставьте его.   -  person Mark Thomas    schedule 16.02.2012
comment
А, хорошо, вот: "{\"success\":false,\"message\":\"Nice try, but you need to write something!\",\"code\":1004}" Это ошибка API, а не HTTP, очевидно.   -  person Pezholio    schedule 16.02.2012


Ответы (1)


Я просмотрел API, и обновления предполагают, что JSON будет в теле POST, не строка запроса. Попробуйте :body вместо :query:

    def create(text)
        BufferApp.post('/updates/create.json', :body => {"text" => text, "profile_ids[]" => @id, "access_token" => @token})
    end
person Mark Thomas    schedule 16.02.2012