psecio / oauth2-discord
League Oauth2 客户端的 Discord 提供者
dev-master
2017-10-30 13:53 UTC
Requires
- enygma/modler: 2.*
Requires (Dev)
- phpunit/phpunit: 4.1.4
This package is auto-updated.
Last update: 2024-09-15 11:16:21 UTC
README
Discord OAuth2 提供者
这是一个用于 PHP League 的 OAuth2 客户端的 Discord 提供者。可以通过以下链接访问 OAuth2 客户端:OAuth2 客户端。
安装
要安装提供者,请使用 Composer
composer require psecio/oauth2-discord
使用:OAuth 连接
以下代码是使用此库与 Discord 服务进行 OAuth 连接并授权账户的示例。默认情况下,它将请求以下作用域
身份
电子邮件
读取消息
公会
有关作用域的更多信息,请参阅 此文档。
<?php $provider = new \League\OAuth2\Client\Provider\Discord([ 'clientId' => 'client-id', 'clientSecret' => 'client-secret', 'redirectUri' => 'http://yoursite.com/callback' ]); if (!isset($_GET['code'])) { // If we don't have a code yet, we need to make the link echo '<a href="'.$provider->getAuthorizationUrl().'">Link to Discord</a>'; } else { // If we do have a code, use it to get a token $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); $user = $provider->getResourceOwner($accessToken); /** * User object contains: * - username * - verified * - mfa_enabled * - id * - avatar */ } ?>
使用:获取数据
此库还可以在已进行认证请求后从 API 获取信息。此过程需要一个实现 Psecio\DiscordPHP\ConnectorInterface
并定义 getToken()
方法的类。此方法应返回当前的 OAuth2 令牌,然后可以与 Manager
类一起使用。例如
<?php class MyConnector implements \Psecio\DiscordPHP\ConnectorInterface { public function getToken() { return 'fdagahdar4324fdgfdsgfss'; } } $connector = new MyConnector(); $manager = \Psecio\DiscordPHP\Manager::getInstance($connector); ?>
如果一切顺利(并且令牌未过期或类似情况),您现在应该可以使用辅助方法从 API 获取信息。例如,要获取当前链接用户的全部公会,您只需使用 guilds
属性即可
<?php $guilds = $manager->guilds; foreach ($guilds as $guild) { echo $guild->name; } ?>
支持的属性
guilds
:当前用户公会的列表user
:有关当前用户的信息