Если вы хотите добавить изображение в альбом, в соответствии с doc , вам нужно передать альбом id
. Убедитесь, что вы сгенерировали токен, который имеет доступ к секретным альбомам. Здесь вы можете найти несколько советов о токенах.
curl_setopt($ch, CURLOPT_POSTFIELDS,
array(
'image' => base64_encode($image),
'album' => '5' // 5 - your album id
)
);
Вы можете проверить идентификатор своих альбомов, используя this api.
Чтобы обновить токен:
Если пользователь авторизовал свою учетную запись, но у вас больше нет действительной access_token
для него, то можно создать новую, используя refresh_token
.
Для получения новойтокен доступа, ваше приложение выполняет от POST
до https://api.imgur.com/oauth2/token
. Для использования токена обновления в запросе должны быть указаны следующие параметры:
refresh_token
: токен обновления, полученный при обмене кодами авторизации
client_id
: идентификатор клиента, полученный при регистрации приложения
client_secret
: Секрет клиента, полученный при регистрации приложения.
grant_type
: Как определено в спецификации OAuth2, это поле должно содержать значение: refresh_token
.
Пока пользователь не отозвал доступ, предоставленный вашему приложению, ответ содержит новый токен доступа. Ответ от такого запроса показан ниже:
{
"access_token":"5c3118ebb73fbb275945ab340be60b610a3216d6",
"refresh_token":"d36b474c95bb9ee54b992c7c34fffc2cc343d0a7",
"expires_in":3600,
"token_type":"Bearer",
"account_username":"saponifi3d"
}
Добавьте часть обновления в начале вашего скрипта. Что-то вроде:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/oauth2/token');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'refresh_token' => $refreshToken, // Your refresh_token
'client_id' => $client_id,
'client_secret' => $clientSecret, //Your client_secret
'grant_type' => 'refresh_token'
]);
//Keep in mind that refreshToken and clientSecret are obtained during registration.
$reply = curl_exec($ch);
curl_close($ch);
$reply = json_decode($reply);
$accessToken = $reply->access_token;