nahid/php-stack-api

这是一个用于StackExchange API版本2.2的PHP SDK

v1.1.0 2016-09-21 12:41 UTC

This package is auto-updated.

Last update: 2024-08-29 03:49:55 UTC


README

php-stack-api 是 StackExchange API 版本 2.2 的 PHP SDK。现在您可以轻松访问和处理所有 StackApps API。让我们享受吧 :)

要求

  • CURL
  • PHP 5.5.9+

安装

要安装此软件包到您的项目中,只需从项目根目录在您的终端中运行此命令。

composer require nahid/php-stack-api

配置

安装成功完成后,您需要正确配置它。此软件包也兼容 Laravel

Laravel

打开 config/app.php 并在提供者数组末尾添加此行

Nahid\StackApis\StackApiServiceProvider::class,

然后,在您的终端中运行此命令以发布配置文件

php artisan vendor: publish --provider="Nahid\StackApis\StackApiServiceProvider"

当您运行此命令 stackapi.php 时,配置文件将被复制到您的项目的 config 目录。现在打开 app/stackapi.php 并使用您的 StackApps 应用程序的凭据填写它。

return [
    'client_id' => 1234,
    'client_secret' => 'application-client-secret',
    'key' => 'application-key-value',
    'redirect_uri' => 'http://example.com/redirect-uri',
];

纯PHP项目

对于纯PHP项目没有特殊配置。您需要在实例化类时传递配置数据。

require 'vendor/autoload.php';

use Nahid\StackApis\StackApi;

$config = [
    'client_id' => 1234,
    'client_secret' => 'application-client-secret',
    'key' => 'application-key-value',
    'redirect_uri' => 'http://example.com/redirect-uri',
];
$stackApi = new StackApi($config);

使用方法

它具有许多功能。当所有这些配置完成后,您就可以像您所希望的那样使用它。

首先,您需要使用您的项目对用户进行身份验证。因此,创建一个身份验证链接。

<a href="<?= get_stack_api_auth_url(); ?>">Authenticate</a>

它为 StackExchange 创建一个身份验证 URL 并使用您的 redirect_url 获取 access_token。现在您是一个授权用户,可以从此软件包访问所有 API。

获取当前认证用户的数据

API URI: /me

Laravel

$me = StackApi::me()->get();

纯PHP

$stackApi = new StackApi($config);
$me = $stackApi->me()->get();

通过用户ID获取用户信息

API URI: /users/{ids}

Laravel

$me = StackApi::users(1234)->get();

纯PHP

$stackApi = new StackApi($config);
$me = $stackApi->users(1234)->get();

这里所有这些数据都是对象。因此,您可以轻松处理它们。

简单方法

此软件包的格式与 RestAPI URI 一样。您一定会对它感到惊讶。

例如,如果您想要获取 URI 为 /users/{ids}/comments 的数据,那么方法将看起来像这样

$data = StackApi::users($id)->comments()->get();

或者,如果 URI 是 /users/{id}/network-activity,那么方法将是

$data = StackApi::users($id)->networkActivity()->get();

注意: 1. 您可以像 URI 格式一样调用每个 URI 作为 PHP 方法链。2. 如果 URI 由连字符 (-) 分隔,那么当您调用它时将转换为 camelCase。3. 每个URI参数都按照URI格式传递到方法参数中。

以下是一个最终示例,如果您的 URI 如 /badges/{ids}/recipients

$data = StackApi::badges($id)->recipients()->get();

可用方法

  • makeAuthUri()
  • getAccessToken()
  • info([$site[, $sort]])
  • me()
  • users($ids)
  • user($id)
  • get([$site[, $page[, $pageSize[, $sort[, $order[, $dateRange[, $minDate]]]]]]])
  • isExpired()
  • destroyAccessToken()

有关 StackApps API 的更多信息,您可以阅读 文档

谢谢 :)