oauth — Как получить вопросы, используя StackOverflow API V 2.2 в Stack Overflow

Я работаю над проектом и хочу получить вопросы о переполнении стека с помощью API переполнения стека. Я искал способ, как добиться того же здесь:

  1. Как получить список вопросов из API-интерфейса stackoverflow на основе поискового запроса?
  2. Получение нулевого значения в ответ от API переполнения стека с помощью PHP
  3. Как использовать Stack Overflow API в PHP

Но я не нашел ничего полезного, так как это старые методы. Они используют старые версии API Stack Overflow.

Проходя через stackapps, я прочитал, что для выполнения этой задачи я должен зарегистрировать свое приложение. Я зарегистрировал приложение на www.stackapps.com. и я получил идентификатор приложения и его секретный ключ.

Я посетил здесь https://api.stackexchange.com/docs/authentication уметь получать данные из стека API V 2.2. Они дали полезные ссылки для получения данных с помощью Stack Overflow API V 2.0 с использованием аутентификации через OAuth 2.0

Там написано запросить запрос у пользователя, а затем получить «код» и т. Д. Я застрял здесь. Каким должен быть процесс, чтобы двигаться вперед, используя PHP.

Мое приложение должно сделать это:

Пусть входная ссылка будет: https://api.stackexchange.com/2.2/questions?order=desc&сортировать = активность&сайт = StackOverflow

Я получаю данные этой страницы в любой из двух форм: HTML или JSON.

Можно ли это сделать без OAuth. Если нет, то, пожалуйста, руководство.

2

Решение

Предполагая, что вы зарегистрировали свою заявку.

Перейдите в раздел Управление приложениями здесь https://stackapps.com/apps/oauth

Включить клиентский поток в настройках приложения.

Теперь, когда вы хотите создать настольное приложение, выполните следующие шаги:

  1. Сначала вам нужно получить токен доступа, перенаправив пользователя по этой ссылке:
    https://stackexchange.com/oauth/dialog?client_id=[YOUR_APP_ID]&Объем = private_info&redirect_uri = https: //stackexchange.com/oauth/login_success

  2. Вы (как пользователь) утвердите запрос, сделанный приложением. Затем вы будете перенаправлены на другую ссылку, в которой будет access_token.

  3. Возьмите токен доступа оттуда и поместите его по этой ссылке:

https://api.stackexchange.com/2.2/questions?order=descsort=activity&сайт = StackOverflow&ключ = [YOUR_APP_KEY]&access_token = [YOUR_ACCESS_TOKEN]&Фильтр = withbody

Это будет ваш готовый API.

Получить контент с помощью:

$context = stream_context_create(array('https' => array('header'=>'Connection: close\r\n')));
$json_array = file_get_contents("YOUR_API_URL", false, $context);
$data = json_decode(gzdecode($json_array),true);
print_r($data); // Show your file data

Данные, которые вы получите, находятся в формате JSON и сжаты (из GZIP). Поэтому мы распаковали его и затем расшифровали JSON.

Это должно работать. Это сработало для меня. 🙂

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]