如何在PHP中使用StackOverflow API v2.2获取问题

如何在PHP中使用StackOverflow API v2.2获取问题,php,oauth,stackexchange-api,Php,Oauth,Stackexchange Api,我正在从事一个项目,希望使用stack overflow API从stack overflow中获取问题。我在这里找到了实现同样目标的方法: 但我发现没有什么有用的,因为它们是旧技术。他们正在使用旧的堆栈溢出API版本 在浏览stackapps时,我读到为了完成这项任务,我必须注册我的应用程序。我已在www.stackapps.com上注册了一个应用程序。我得到了一个应用程序ID和它的密钥 我访问这里是为了了解如何从StackAPIv2.2获取数据。他们提供了有用的链接,可以使用堆栈溢出A

我正在从事一个项目,希望使用stack overflow API从stack overflow中获取问题。我在这里找到了实现同样目标的方法:

  • 但我发现没有什么有用的,因为它们是旧技术。他们正在使用旧的堆栈溢出API版本

    在浏览stackapps时,我读到为了完成这项任务,我必须注册我的应用程序。我已在www.stackapps.com上注册了一个应用程序。我得到了一个应用程序ID和它的密钥

    我访问这里是为了了解如何从StackAPIv2.2获取数据。他们提供了有用的链接,可以使用堆栈溢出API V 2.0通过OAuth 2.0进行身份验证来获取数据

    上面说向用户请求,然后获取“代码”等等。我被困在这里了。为了使用PHP向前发展,应该有什么样的过程

    我的应用程序应该做到这一点:

    让输入链接为:

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


    没有OAuth也能做到。如果没有,请指导。

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

    从这里开始管理您的应用程序

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

    现在,要创建桌面应用程序,请执行以下步骤:

  • 首先,您需要通过将用户重定向到此链接来获取访问令牌:

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

  • 从那里获取访问令牌并将其放入此链接:

  • 这将是您的现成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

    这应该行得通。这对我很有效。:)