ThinkPHP 对接 Discord 中 Midjourney 的详细步骤
-
在 Discord 开发者门户网站上创建一个应用程序并获取其客户端 ID 和密钥。
-
在 Discord 应用程序设置中,启用服务器成员列表和消息读取权限。
-
在 ThinkPHP 应用程序中,使用 Composer 安装 discordphp/discord.php 包。
-
在 config/app.php 中添加 DiscordPHP\Discord\DiscordServiceProvider。
-
在 config/discord.php 中配置 Discord 客户端 ID 和密钥。
-
在 routes/web.php 中添加以下路由:
Route::get('/discord/login', 'DiscordController@login'); Route::get('/discord/callback', 'DiscordController@callback');
- 在 app/Http/Controllers/DiscordController.php 文件中编写 login 和 callback 方法。
public function login() { $discord = new Discord([ 'clientId' => config('discord.client_id'), 'clientSecret' => config('discord.client_secret'), 'redirectUri' => url('/discord/callback'), ]);
$url = $discord->getAuthorizationUrl();
session(['discord_state' => $discord->getState()]);
return redirect($url);
}
public function callback(Request $request) { $discord = new Discord([ 'clientId' => config('discord.client_id'), 'clientSecret' => config('discord.client_secret'), 'redirectUri' => url('/discord/callback'), ]);
$state = session('discord_state');
if (!$state || $state !== $request->get('state')) {
return redirect('/');
}
$token = $discord->getAccessToken('authorization_code', [
'code' => $request->get('code'),
]);
$user = $discord->getResourceOwner($token);
// 在此处处理用户数据
}
-
在 callback 方法中,使用 getResourceOwner 方法获取 Discord 用户数据。在此处,您可以处理用户数据并将其存储在数据库中,或者将其用于其他自定义逻辑。
-
在 Discord 应用程序设置中,将 OAuth2 回调 URL 设置为 /discord/callback。
-
启动 ThinkPHP 应用程序并访问 /discord/login 来启动 OAuth2 流程。
-
在 Discord 中登录并授权您的应用程序。授权后,将重定向到 /discord/callback 路由,其中将包含访问令牌,您可以在其中获取 Discord 用户数据。
原文地址: https://www.cveoy.top/t/topic/nJ0R 著作权归作者所有。请勿转载和采集!