nahid / php-stack-api
这是一个用于StackExchange API版本2.2的PHP SDK
Requires
- duncan3dc/sessions: ^1.0
- illuminate/config: ^5.2
Requires (Dev)
- phpunit/phpunit: ^5.4
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 的更多信息,您可以阅读 文档
谢谢 :)