Получение данных с помощью API-интерфейса Meetups - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь использовать Meetups API с ключом API, но CORS блокирует меня.

Я использую пример встречи, который дает: https://api.meetup.com/2/events?key=mykey&group_urlname=ny-tech&sign=true, заменяя ключ API на мойКлюч API.Этот пример взят из здесь.

Вот мой код (я вынул свой ключ и заменил его на <ключ>):

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<button id="find">find</button>
 <script>
        $("#find").click( function(){
          $.getJSON("https://api.meetup.com/2/events?key=<key>&group_urlname=ny-tech&sign=true", function(data){
            console.log(data);
          });
        });
</script>

Я получаю следующие ошибки:

Доступ к XMLHttpRequest в 'https://api.meetup.com/2/events?key=aKey&group_urlname=ny-tech&sign=true' от источника' http://127.0.0.1:5500' заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».test.html: 18

Блокировка перекрестного чтения (CORB) заблокировала ответ перекрестного происхождения https://api.meetup.com/2/events?key=aKey&group_urlname=ny-tech&sign=true с приложением MIME-типа / json.См. https://www.chromestatus.com/feature/5629709824032768 для более подробной информации.

Я новичок в API, и я не понимаю, что здесь происходит.Я знаю, что некоторым API-запросам на API Meetup требуется OAuth, который я до сих пор пытаюсь понять. Однако, поскольку этот пример использовался для ключей API в документах, а не OAuth, я ожидал, что он будет работать с моим ключом API. Запрос работает, когда я просто вставляю его в браузер, но некогда я использую jQuery, чтобы захватить его.

Есть несколько мест, где документация говорит о CORS: Здесь документация говорит

"вы должны использовать OAuthчтобы воспользоваться преимуществами CORS. "

и здесь

Хотя мы поддерживаем аутентификацию на основе ключей для сторонних приложений, нам требуется OAuth для третьих-приложения приложений, которые выполняют действия от имени других пользователей.

Я не принимаю никаких действий от имени других пользователей.Но я стороннее приложение?Каким будет приложение для первой вечеринки?При каких обстоятельствах по запросу я делаю работу?

1 Ответ

0 голосов
/ 29 января 2019

Похоже, что Meetup разрешает только CORS с запросами, которые аутентифицированы через OAuth - чтение этой проблемы

Один из способов - использовать jsonP .После того как вы получите сгенерированный URL-адрес подписи API, вы можете добавить ?callback=? в качестве первого параметра, и он будет работать для вас.

Вот пример ниже

$("#find").click(function() {
  $.getJSON("https://api.meetup.com/2/events?callback=?&offset=0&format=json&limited_events=False&group_urlname=ny-tech&page=200&fields=&order=time&desc=false&status=upcoming&sig_id=SIGID&sig=SIG", function(data) {
    console.log(data);
  }).fail(function(jqxhr, textStatus, error) {
    console.log("error", textStatus);
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<button id="find">find</button>
...