Discord Oauth2 PHP 中的 JPEG 头像

Posted

技术标签:

【中文标题】Discord Oauth2 PHP 中的 JPEG 头像【英文标题】:Avatar as JPEG in Discord Oauth2 PHP 【发布时间】:2021-05-26 17:55:28 【问题描述】:

我正在制作一个使用不和谐 OAuth2 登录的网站。我想从 Oauth2 中获取 Avatar,并且我希望它是 JPEG 格式的。有没有办法在 php 中获取 JPEG 格式的图像(即使用户有一个 gif 作为头像)。

这是我从 oauth2 请求信息的代码

$params = array(
    'client_id' => OAUTH2_CLIENT_ID,
    'redirect_uri' => 'http://localhost:80/dwayne',
    'response_type' => 'code',
    'scope' => 'identify guilds email',
    'size' => 16
  );
  header('Location: https://discordapp.com/api/oauth2/authorize' . '?' . http_build_query($params));
  die();

这在文档中给出

Discord 使用 id 和哈希值在客户端呈现图像。这些哈希值可以通过各种 API 请求来检索,例如 Get User。以下是 Discord 中图像的格式、大小限制和 CDN 端点。可以通过更改 URL 末尾的扩展名来更改返回的格式。可以通过将 ?size=desired_size 的查询字符串附加到 URL 来更改返回的大小。图像大小可以是 16 到 4096 之间的 2 的任意幂。

我不理解文档中的给定文本。

提前致谢。

【问题讨论】:

【参考方案1】:

头像格式可以通过改变代码的结尾扩展来改变

<img src="https://cdn.discordapp.com/avatars/'. $user->id. '/'. $user->avatar .'.png" alt="'. $user->username.'" />

在这个$user 中是发送给Oauth 的请求的结果。如果您想将格式更改为.jpeg,则代码为

<img src="https://cdn.discordapp.com/avatars/'. $user->id. '/'. $user->avatar .'.jpg" alt="'. $user->username.'" />

【讨论】:

以上是关于Discord Oauth2 PHP 中的 JPEG 头像的主要内容,如果未能解决你的问题,请参考以下文章

在我的网站上设置 Discord oauth2 登录(使用 PHP?)

PHP Discord OAUTH2 代码示例不起作用

如何撤销 Discord OAuth2.0 中的令牌?

Discord 使用 url-query 中的“代码”发送 Oauth2 重定向 url。如何在我的谷歌脚本中获取该代码

无法在 Electron 应用程序中使用 Discord OAuth2

Discord API - 传回生成的 OAuth2 代码的随机“无效代码”错误