Вы делаете неверный запрос.
Вначале вам нужно сгенерировать свой идентификатор клиента (подробнее @ https://api.imgur.com/#registerapp)
Для этого перейдите на https://api.imgur.com/oauth2/addclient
а также
Выберите Анонимное использование без опции авторизации пользователя в качестве Типа авторизации.
Использовать авторизацию: Client-ID не Bearer, вы можете сохранить file_get_contents (поэтому - тогда вам нужно изменить только заголовок авторизации), но CURL будет лучше для этого.
Пример с CURL:
<?php
class Image
{
public static function uploadImage($formname, $query, $params)
{
$client_id = 'YOUR CLIENT ID';
$image = base64_encode(file_get_contents($_FILES[$formname]['tmp_name']));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.imgur.com/3/image.json',
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => array(
'Authorization: Client-ID ' . $client_id
) ,
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => array(
'image' => $image
)
));
$out = curl_exec($curl);
curl_close($curl);
$response = json_decode($out);
$preparams = array(
$formname => $response->data->link
);
$params = $preparams + $params;
DB::query($query, $params);
}
}