next.js 从GET请求Imgur API接收错误429

cu6pst1q  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(158)

我从Imgur API得到一个Request failed with status code 429,而我的Client_ID是新的,我甚至没有使用过它,
以下是我的API.ts:

  1. const imgurClientId = process.env.NEXT_PUBLIC_Client_ID
  2. const BASE = "https://api.imgur.com/3";
  3. const EP_GALLERY = `${BASE}/gallery`;
  4. const EP_GALLERY_TAGS = `${BASE}/tags`;
  5. async function imgurBaseApi(args: Args) {
  6. const myHeaders = new Headers({
  7. Authorization: `Client-ID ${imgurClientId}`,
  8. });
  9. args.requestOptions = {
  10. ...args.requestOptions,
  11. headers: myHeaders,
  12. method: "GET",
  13. };
  14. const response = await fetch(args.endPoint, args.requestOptions);
  15. const responseJson = await response.json();
  16. return responseJson.data;
  17. }
  18. // how I use it:
  19. async function getGalleryTagMetadata(requestArgs: TypeState["requestArgs"]) {
  20. const endPoint = `${EP_GALLERY}/t/${requestArgs.tagName}/${requestArgs.sort}/${requestArgs.window}/${requestArgs.page}`;
  21. return imgurBaseApi({ endPoint: endPoint });
  22. }

我也尝试了简单的fetch调用,如下所示:

  1. const imgurClientId = process.env.NEXT_PUBLIC_Client_ID
  2. const sort = 'viral'
  3. const window = 'day'
  4. const page = 1
  5. const url = `https://api.imgur.com/3/gallery/search/${sort}/${window}/${page}?q=cats`
  6. const requestOptions = {
  7. method: 'GET',
  8. headers: new Headers({
  9. Authorization: `Client-ID ${imgurClientId}`,
  10. }),
  11. }
  12. fetch(url, requestOptions)
  13. .then((response) => {
  14. if (!response.ok) {
  15. throw new Error(`HTTP error! Status: ${response.status}`)
  16. }
  17. return response.json()
  18. })
  19. .then((data) => {
  20. console.log('dta', data)
  21. })
  22. .catch((error) => {
  23. console.error('Error:', error)
  24. })

我已经按照Imgur文档设置了我的Client_ID,当我用Postman尝试它时,它工作得很好,成功地请求了GET
我的问题是:
由于这是一个应用程序只是为了接收一些图像,我需要通过0auth2步骤吗?
ps.完整的代码更长,但让我知道,我会在这里打印出来
Thanks in advance
欢呼

daupos2t

daupos2t1#

我将package.json中的启动脚本更改为“start”:“react-scripts start --host 0.0.0.0“基于这里提到的注解someone。然后我把浏览器指向http://0.0.0.0:3000/,我就能从imgur得到回应。

相关问题