timutech/codecombat-api

codecombat.com REST API 的包

v0.5.2 2018-03-29 16:10 UTC

README

CodeCombat REST API 的 PHP 包

codecombat-api 是 CodeCombat REST API 的包。它提供了一个与 CodeCombat API 交互的抽象接口。该包包含一个 Laravel ServiceProvider,可以将它注入到 Laravel 服务容器中,但除此之外,该包与框架无关。请查看 CodeCombat API 文档 以获取更多详细信息,并且不要害怕浏览此包的源代码。

安装

composer require timutech/codecombat-api

配置

您可能需要拥有自己的 OAuth2 服务器。您需要一个查询 URL,其中 CodeCombat 可以查询您提供的 AccessToken,然后您将返回与该 AccessToken 相关联的您系统中的用户。例如 https://yoursite.com/api/auth/{token},它返回一个带有 必需id 字段的用户。

正常

确保您在配置中保留 CodeCombat OAuth 的 {CLIENT_ID}{CLIENT_SECRET}{OAUTH_PROVIDER_ID},因为您将需要它们来实例化一个实例。

Laravel

在您的 config/app.php 文件中添加以下行:TimuTech\CodeCombat\CodeCombatserviceProvider::class, 如下所示。

'providers' => [
	// Other

	TimuTech\CodeCombat\CodeCombatServiceProvider::class,
],

将您的 CodeCombat OAuth 凭证添加到您的 config/services.php 文件中,如下所示。

// Other services

'codecombat' => [
    'id' => '{CLIENT_ID}',
    'secret' => '{CLIENT_SECRET}',
    'provider_id' => '{OAUTH_PROVIDER_ID}'
]

使用方法

请参阅源代码以获取其他功能,或创建一个 pull request 以添加功能。我将尽力在可能的情况下添加功能。

正常

实例化

$codecombat = new CodeCombat(
	{CLIENT_ID},
	{CLIENT_SECRET},
	{OAUTH_PROVIDER_ID});

创建新用户

$user = {A user from your system}
$combatUser = $codecombat->register([
    'name' => $user->name, // UNIQUE Nick Name
    'email' => $user->email, // NEW Email,
    'role' => 'student' //or 'teacher'
]);

分配 OAuth 身份

$token = {YOUR OAuth2 token, generated for your user from your server}
$codecombat->setAuth($token)->createIdentity($combatUser);

稍后检索用户

$handle = {UNIQUE Nick Name assigned earlier or the CodeCombat ID of the user, if you have it}
$combatUser = $codecombat->getUser($handle);

获取重定向到 CodeCombat 的 URL

$token = {YOUR OAuth2 token, generated for your user from your server}
$url = $codecombat->setAuth($token)->redirect();

TimuTech\CodeCombat\Resources\CombatUser 类有一些有用的方法和属性,例如

$combatUser->getEmail();
$combatUser->getId();
$combatUser->getProfile();

再次强调,源代码是您的朋友。