ilink returns HTTP 200 with business errors in the response body; parse ret/errcode/errmsg and return an error so the engine logs platform send failures (e.g. quota). Add sendMessageResp and a small JSON unmarshal test.
ilink returns HTTP 200 with business errors in the response body; parse ret/errcode/errmsg and return an error so the engine logs platform send failures (e.g. quota). Add sendMessageResp and a small JSON unmarshal test.