如何在 PHP 中使用 StackOverflow API V 2.2 获取问题
How to get questions using StackOverflow API V 2.2 in PHP
我正在做一个项目,想使用 Stack Overflow API 从堆栈溢出中获取问题。我在这里搜索了如何实现相同的方法:
- Getting null as response from Stack Overflow API with PHP
- How to use Stack Overflow API in PHP
但我没有发现任何有用的东西,因为它们是旧技术。他们使用旧的 Stack Overflow API 版本。
在浏览 stackapps 时,我读到要完成此任务,我必须注册我的应用程序。我已经在 www.stackapps.com 上注册了一个应用程序。我得到了一个 APP ID 和它的 SECRET KEY。
我访问了这里 https://api.stackexchange.com/docs/authentication 以了解如何从堆栈中获取数据 API V 2.2。他们提供了有用的 links 来使用 Stack Overflow API V 2.0 使用 OAuth 2.0
身份验证获取数据
它说向用户请求请求然后得到 "code" 等等。我被困在这里了。使用 PHP.
前进的过程应该是什么
我的应用应该这样做:
设输入 link 为:https://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=Whosebug
我以 HTML 或 JSON 两种形式中的任何一种获取此页面的数据。
没有OAuth可以吗。如果没有,请指导。
假设您已经注册了您的应用程序。
从这里转到管理您的应用程序https://stackapps.com/apps/oauth
在应用程序设置中启用客户端流程。
现在您要创建桌面应用程序,步骤如下:
首先,您需要通过将用户重定向到此 link 来获取访问令牌:
https://stackexchange.com/oauth/dialog?client_id=[YOUR_APP_ID]&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success
您(作为用户)将批准应用程序提出的请求。然后您将被重定向到另一个 link,其中将有一个 access_token.
从那里获取访问令牌并将其放入此 link :
这就是你准备好的 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.
这应该有效。它对我有用。 :)
我正在做一个项目,想使用 Stack Overflow API 从堆栈溢出中获取问题。我在这里搜索了如何实现相同的方法:
- Getting null as response from Stack Overflow API with PHP
- How to use Stack Overflow API in PHP
但我没有发现任何有用的东西,因为它们是旧技术。他们使用旧的 Stack Overflow API 版本。
在浏览 stackapps 时,我读到要完成此任务,我必须注册我的应用程序。我已经在 www.stackapps.com 上注册了一个应用程序。我得到了一个 APP ID 和它的 SECRET KEY。
我访问了这里 https://api.stackexchange.com/docs/authentication 以了解如何从堆栈中获取数据 API V 2.2。他们提供了有用的 links 来使用 Stack Overflow API V 2.0 使用 OAuth 2.0
身份验证获取数据它说向用户请求请求然后得到 "code" 等等。我被困在这里了。使用 PHP.
前进的过程应该是什么我的应用应该这样做:
设输入 link 为:https://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=Whosebug
我以 HTML 或 JSON 两种形式中的任何一种获取此页面的数据。
没有OAuth可以吗。如果没有,请指导。
假设您已经注册了您的应用程序。
从这里转到管理您的应用程序https://stackapps.com/apps/oauth
在应用程序设置中启用客户端流程。
现在您要创建桌面应用程序,步骤如下:
首先,您需要通过将用户重定向到此 link 来获取访问令牌: https://stackexchange.com/oauth/dialog?client_id=[YOUR_APP_ID]&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success
您(作为用户)将批准应用程序提出的请求。然后您将被重定向到另一个 link,其中将有一个 access_token.
从那里获取访问令牌并将其放入此 link :
这就是你准备好的 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.
这应该有效。它对我有用。 :)