Я пытаюсь создать вызов API-интерфейса YourMembership, в частности, метода Session.Create.
function create_session(){
var xml_create_session = '<?xml version="1.0" encoding="utf-8" ?>' +
'<YourMembership>' +
'<Version>' + ym_api_version + '</Version>' +
'<ApiKey>' + ym_api_key + '</ApiKey>' +
'<CallID>001</CallID>' +
'<Call Method="Session.Create"></Call>' +
'</YourMembership>';
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var session_id = xhttp.responseText.SessionID;
authorize_token(session_id);
}
};
xhttp.open("POST", api_url,true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(xml_create_session);
}
Когда я отправляю этот запрос в API, я получаю следующий ответ, который содержит как ошибкуотправленный API, а также исходный запрос, представленный API (примечание: я отредактировал наш ключ API, он был правильным в ответе):
<?xml version="1.0" encoding="utf-8" ?>
<YourMembership_Response>
<ErrCode>999</ErrCode>
<ExtendedErrorInfo></ExtendedErrorInfo>
<ErrDesc>An unknown error has occured.</ErrDesc>
<XmlRequest>
<YourMembership>
<Version>2.02</Version>
<ApiKey>REDACTED</ApiKey>
<CallID>001</CallID>
<Call Method="Session.Create"></Call>
</YourMembership>
</XmlRequest>
</YourMembership_Response>
YourMembership в своей документации заявляет, что запрос APIдолжен быть представлен в виде XML-файла через POST и предоставить следующий пример для вызова Session.Create на их сайте (https://api.yourmembership.com/reference/2_02/Session_Create.htm):
<?xml version="1.0" encoding="utf-8" ?>
<YourMembership>
<Version>2.02</Version>
<ApiKey>3D638C5F-CCE2-4638-A2C1-355FA7BBC917</ApiKey>
<CallID>001</CallID>
<Call Method="Session.Create"></Call>
</YourMembership>
Возможно, это может быть проблемой, специфичной дляплатформы, но также весьма вероятно, что что-то не так с моим JS или с пониманием того, как создать XML-файл для отправки в API, поэтому любые рекомендации очень ценятся! Большое спасибо!