Моя компания использует программное обеспечение nocrm.io для отслеживания потенциальных клиентов и клиентов. Я хотел бы использовать их API в нашем веб-приложении, чтобы иметь возможность получать и размещать информацию. В настоящее время у меня возникают проблемы при попытке сделать http-запросы в нашем веб-приложении с использованием их API. Каждый раз, когда я пытаюсь выполнить запрос GET для проверки связи с APIKey, я получаю сообщение об ошибке 401. Я пытался делать запросы через Postman, и они работают, но когда я пытаюсь реализовать эти запросы в моем приложении, они этого не делают, что немного расстраивает.
Если кто-то имел опыт использования этого APIили что-то подобное, что могло бы помочь мне, это было бы здорово.
Вот ссылка на их API: https://youdontneedacrm.com/api#nocrm.io-api
В настоящее время я использую jquery AJAX для выполнения запросов. Я попытался поместить APIKey в заголовки, как предлагает их API, но это просто дает мне 401 и CORS. Их API также предполагает, что вы можете поместить APIKey в параметры запроса, но я все равно получаю ту же ошибку 401.
Да, я также убедился, что APIKey, который я использую, является правильным, так чтоЭто не проблема.
Я поместил запрос в браузер, который возвращает статус 200, говорящий, что мой APIKey также верен.
Ниже приведено то, что в настоящее время дает мне 401 ошибку.
myfile.js
import $ from 'jquery'
const api_key = require('../../../env.config.json').CRM.API_KEY;
class Myfile extends React.Component{
constructor(props){
super(props);
this.state = {}
}
PingApi(){
var url = 'https://OUR_ACCOUNT.nocrm.io/api/v2/ping'
var apikey = api_key
var dataObject = {
'X-API-KEY': apikey
}
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: url,
data: dataObject,
headers: {"Accept": "application/json"},
crossDomain: true,
beforeSend: function(xhr){
xhr.withCredentials = true;
},
success: function(data, textStatus, jqXHR){
console.log("Good");
},
error: function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
})
}
render(){
return(
<button onClick={this.PingApi.bind(this)}>Ping API</button>
);
}
}
export default Myfile
Я ожидал получить статус 200 с возвращенным объектом json, но вместо этого получил401.
EDIT Вот скриншот запроса, работающего в Почтальоне. Очевидно, я заблокировал конфиденциальную информацию по соображениям безопасности. И да, API-ключ такой же, как тот, который я использую в нашем веб-приложении.
