在React中调用Cloud Vision API

你好,我是TABE。

因为需要调查从React调用CloudVisionAPI的方法,所以将其作为备忘录记录下来。

首先

搭建React项目的配置

请在您希望创建示例React项目的位置上运行以下命令

npx create-react-app my-vision-app
cd my-vision-app

接下来是谷歌云的设置

虽然代码本身很简单,但是我在这里遇到了一些问题…
我是参考了以下内容进行设置的。
https://dev.classmethod.jp/articles/google-cloud_vision-api/

示例代码

我将以下代码替换到 App.js 文件中。

import './App.css';
import React, { useState } from 'react';
import axios from 'axios';

function App() {
  const [image, setImage] = useState('');
  const [result, setResult] = useState(null);

  const handleChange = (e) => {
    setImage(e.target.value);
  };

  const handleSubmit = async () => {
    const API_KEY = process.env.REACT_APP_YOUR_GOOGLE_CLOUD_VISION_API_KEY;
    console.log(process.env);
    const url = `https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}`;

    const request = {
      requests: [
        {
          image: {
            source: {
              imageUri: image,
            },
          },
          features: [
            {
              type: 'LABEL_DETECTION',
              "maxResults":1
            },
            {
              type: 'TEXT_DETECTION',
              maxResults: 10
            },  
          ],
        },
      ],
    };

    try {
      const response = await axios.post(url, request);
      setResult(response.data);
    } catch (error) {
      console.error('Error calling the Vision API', error);
      setResult(null);
    }
  };
  return (
    <div>
      <h1>Google Cloud Vision API with React</h1>
      <input type="text" value={image} onChange={handleChange} placeholder="Image URL" />
      <button onClick={handleSubmit}>Analyze Image</button>
      {result && <pre>{JSON.stringify(result, null, 2)}</pre>}
    </div>
  );
}
export default App;

别忘了在.env文件中设置API密钥!

REACT_APP_YOUR_GOOGLE_CLOUD_VISION_API_KEY=xxxxxxx

请在xxxxx中输入通过Google Cloud获取的API密钥。

确认行动

请粘贴一个从互联网上获取到的图片URL(请确保URL指向一个.jpeg或.pdf等文件类型),然后点击“分析图片”按钮。

如果能够以Json格式显示响应的话,那就算成功!

スクリーンショット 2023-10-24 17.17.30.png

因为在样本中使用的内容不是免费素材,所以文本部分已经省略,但图片中的文本仍然可以正确获取!

在Google Cloud设置中发生了几个错误。

云视觉 API 在项目xxxxx中尚未使用过或已被禁用。请访问启用它。

在项目中,没有启用”Cloud Vision API”。我选择了”Vision AI API”。这是个错误。

这个 API 方法需要启用计费。请访问项目 xxxx 启用计费。

请务必设置账单选项以避免出现错误!

我认为只需要在收到错误响应时编写以下代码即可引发上述错误。

console.error('Error response data:', error.response.data);

以上就是了。
非常感谢!

广告
将在 10 秒后关闭
bannerAds