如何将上传的图片添加到我自己的ImgUr相册

问题描述 投票:0回答:1

我已在 ImgUr 上创建了一个应用程序并收到了 ClientID 和 ClientSecret。

我知道我的专辑ID,例如:xbvhXo(不是真实的ID)

我想上传图片到我的相册。

我做了什么:

我为我的 TypeScript Next.js 项目安装了 imgur npm 包

这是上传图片到ImgUr的代码:

const albumID = 'xbvhXo';
const client = new ImgurClient({ 
    clientId: process.env.IMGUR_CLIENT_ID,
    clientSecret: process.env.IMGUR_CLIENT_SECRET,
 });
export async function uploadToImgUr(imgData: APImageData | Buffer[]): Promise<string[]> {
    let files: Buffer[];
    let album: string | undefined = albumID;
    let name: string | undefined;
    let title: string | undefined;
    let description: string | undefined;

    if(Array.isArray(imgData)) {
        files = imgData;
    } else {
        files = imgData.files;
        album = imgData.album ? imgData.album : albumID;
        name = imgData.name;
        title = imgData.title;
        description = imgData.description;
    }

    const uploadPromises = files.map(async (file) => {
        const response = await client.upload({
            image: file,
            type: 'stream',
            album: album,
            name: name,
            title: title,
            description: description,
        });

        return response.data.link;
    });

    return Promise.all(uploadPromises);
}

尝试将图像添加到我的相册时,出现错误:

You are not the owner of album 'xbvhXo', which means you can't add images to it. For anonymous albums, use the album deletehash.

这不是真的,因为我显然是这张专辑的所有者。

我该如何解决这个问题?

reactjs typescript next.js imgur
1个回答
0
投票

发现我需要

  1. 使用客户端 ID 和客户端密钥调用 ImgUr

    authorize
    端点 获取刷新令牌和访问令牌。 (这是一项手动工作,我访问此[url](https://api.imgur.com/oauth2/authorize?client_id=response_type=token&state=,然后手动单击“允许”。 然后,它将我重定向到我在 ImgUr 设置 -> 应用程序中创建应用程序期间设置的回调 URL。

  2. 获得这2个令牌后,我添加了以下代码:

    const 客户端 = new ImgurClient({ clientId:process.env.IMGUR_CLIENT_ID, clientSecret:process.env.IMGUR_CLIENT_SECRET, accessToken:process.env.IMGUR_ACCESS_TOKEN, 刷新令牌:process.env.IMGUR_REFRESH_TOKEN, });

然后其余代码保持不变并开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.