2016-07-31 66 views
0

我想使用HTTPotion發佈到slack api。我碰到this問題就來了一下,它向我指出了正確的方向,但我一直得到錯誤:發佈到Slack API Elixir

HTTPotion.Response{body: "invalid_payload", 
... 

我的代碼是

HTTPotion.post "https://hooks.slack.com/services/T00000000/B0000000/xxxxxxxxxxxxx", [body: "{'channel': '#elixir', 'username': 'elixir stuff', 'text': '#{text}'", headers: ["Content-Type": "application/json"]] 

我真的不知道有什麼不對我的有效載荷

任何幫助將是巨大的

回答

3

那是因爲你的body不是有效的JSON,因爲它使用單引號代替鄰f雙引號,也不會正確地轉義text的值。您應該使用適當的JSON編碼器,如poison。在添加poison作爲依賴項後,您可以執行以下操作:

body: Poison.encode!(%{channel: "#elixir", username: "elixir stuff", text: text}), ...