gpt4 book ai didi

php - 如何在 PHP 中使用 StackOverflow API V 2.2 获取问题

转载 作者:行者123 更新时间:2023-12-05 04:15:54 31 4
gpt4 key购买 nike

我正在做一个项目,想使用 Stack Overflow API 从堆栈溢出中获取问题。我在这里搜索了如何实现相同的方式:

  1. how to get a list of questions from stackoverflow API based on search query?
  2. Getting null as response from Stack Overflow API with PHP
  3. 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 获取数据。他们提供了有用的链接,以使用通过 OAuth 2.0 进行身份验证的 Stack Overflow API V 2.0 获取数据

它说向用户请求请求然后获取“代码”等。我被困在这里了。为了继续使用 PHP,流程应该是什么。

我的应用应该这样做:

让输入链接为:https://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow

我以 HTML 或 JSON 两种形式中的任何一种获取此页面的数据。

没有OAuth能不能搞定。如果没有,请指导。

最佳答案

假设您已经注册了您的应用程序。

从这里转到管理您的应用程序 https://stackapps.com/apps/oauth

在应用程序设置中启用客户端流。

现在您要创建桌面应用程序,步骤如下:

  1. 首先,您需要通过将用户重定向到此链接来获取访问 token : https://stackexchange.com/oauth/dialog?client_id=[YOUR_APP_ID]&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success

  2. 您(作为用户)将批准应用程序提出的请求。然后您将被重定向到另一个链接,其中将有一个 access_token。

  3. 从那里获取访​​问 token 并将其放入此链接:

https://api.stackexchange.com/2.2/questions?order=descsort=activity&site=stackoverflow&key=[YOUR_APP_KEY]&access_token=[YOUR_ACCESS_TOKEN]&filter=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。

这应该有效。它对我有用。 :)

关于php - 如何在 PHP 中使用 StackOverflow API V 2.2 获取问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246303/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com