xzsoftware/wykopsdk

Wykop Api v2 SDK

2.1.0 2020-04-11 16:35 UTC

README

WykopSDK 是一个用于 Wykop 的 PHP 软件开发工具包,使开发针对 Wykop 的 PHP 应用程序变得容易。

  • 一个简单的类,用于处理具有合理分组的请求。
  • 为您处理所有魔法。
  • 完全面向对象!
  • 在出现问题时抛出异常。
  • 抽象API,允许您编写正确的应用程序代码。
use XzSoftware\WykopSDK\Exceptions\ApiException;
use XzSoftware\WykopSDK\Profile\Request\Profile;
use XzSoftware\WykopSDK\SDK;
use XzSoftware\WykopSDK\UserManagement\Request\Login;

$sdk = SDK::buildNewSDK('APP_KEY','APP_SECRET');
try {
    $loginResponse = $sdk->auth()->logIn(new Login('USER_NAME', 'USER_ACCOUNT_KEY'));
    $sdk->auth()->authUser('micke', $loginResponse->getUserKey());
    $sdk->profiles()->getProfile(new Profile('micke'));
} catch (ApiException $e) {
    echo $e->getMessage();
    die();
}

安装

推荐通过Composer进行安装。

# Install Composer
curl -sS https://getcomposer.org/installer | php

接下来,运行Composer命令安装最新稳定版本

php composer.phar require xzsoftware/wykopsdk

安装后,您需要要求Composer的自动加载器

require 'vendor/autoload.php';

然后您可以稍后使用composer更新wykopSDK

php composer.phar update

用法

始终从创建新的SDK实例开始。它需要您的Wykop App Key和Secret -> 您可以在此获取。

您还可以创建新应用。请记住检查所有需要的权限

$sdk = XzSoftware\WykopSDK\SDK\SDK::buildNewSDK('APP_KEY','APP_SECRET');

身份验证

如果您想做一些事情,您需要从用户身份验证开始。首先,用户需要通过应用程序连接链接进行连接。

$sdk = XzSoftware\WykopSDK\SDK\SDK::buildNewSDK('APP_KEY','APP_SECRET');
$sdk->auth()->getConnectLink('127.0.0.1/redirectUrl'); // will return url that yuser needs to follow to access your app. He will be then redirected to redirectUrl param.

// on redirect page you need to read connect data
$data = $sdk->auth()->getAuthFromConnectData(
    $_GET['connectData']
);

// now you can authenticate user with this data:
$sdk->auth()->authUser($data->getLogin(), $data->getToken())

另一种选择是通过USER_APP_KEY访问连接,用户需要将其从他的设置中传递,这是一个针对高级用户的更“封闭”选项

use XzSoftware\WykopSDK\SDK;
use XzSoftware\WykopSDK\UserManagement\Request\Login;

$sdk = SDK::buildNewSDK('APP_KEY','APP_SECRET');
$loginResponse = $sdk->auth()->logIn(new Login('USER_NAME', 'USER_ACCOUNT_KEY'));
$sdk->auth()->authUser('USER_NAME', $loginResponse->getUserKey());

用法

您可以在文档中看到的任何端点组都由特定的SDK组处理,如下表所示

组可以具有处理特定内容的端点子组,例如$sdk->links()->related()

端点方法通常接受特定请求对象作为参数,这是处理API调用所需的。

$sdk
    ->links()
    ->related()
    ->add(
        new \XzSoftware\WykopSDK\Links\Request\Related\Add(
            12345,
            'http://some.valid.url',
            'some title'
        )
    );

一些端点违反了这个规则,接受一些扩展特定抽象(投票)的对象之一,

$sdk->links()->related()->vote(
        new \XzSoftware\WykopSDK\Links\Request\Related\VoteUp(1234, 12345)
    );
$sdk->links()->related()->vote(
        new \XzSoftware\WykopSDK\Links\Request\Related\VoteDown(1234, 12345)
    );

或接受简单的值,如字符串或整数(当没有其他参数可能且该参数是必需时)。

$sdk->privateMessages()->getConversation('username');

所有请求对象都可以通过构造函数接受所需的参数。非必需参数可以通过设置器进行修改。例如

$followersRequest = new \XzSoftware\WykopSDK\Profile\Request\Followers('user');
$followersRequest->setPage(3);
$sdk->profiles()->getFollowers($followersRequest);

重要

每个请求对象都有公开的方法

    $request->setUserKey('key');
    $request->setAppKey('key');

没有必要设置这两个参数。SDK客户端将为您处理!