timutech / codecombat-api
codecombat.com REST API 的包
Requires
- php: ^7.1.1
- guzzlehttp/guzzle: ~6.0
- illuminate/support: ^5.3
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();
再次强调,源代码是您的朋友。