Google Vision API for Rails

使用 Carrierwave 和 google vision api in Rails

Kaycheng
4 min readMar 19, 2018

這次專案為,使用Carrierwave上傳照片,再用google vision api分析,得到需要的回傳值。這次的重點放在google vision api的設定。

Step1:

在本機建立一個新的Rails專案,且install carrierwave gem,及做好carrierwave設定。

若Carrierwave設定上有不清楚的地方請參照:Carrierwave Github

Step2:

建立GCP(Google Cloud Platform)帳號,需填入個人資料及信用卡資料,完成後會得到第一年300美元的免費使用額度。

Step3:

完成GCP的註冊後,會進入到GCP中,然後請先建立一個專案。

Step4:

依照下方照片由左上往右下依序操作:

a. 先按左上的”三”鍵

b. 出現左方選單後,選擇"API和服務"

c. 選擇"憑證"

d. 按"建立憑證"

Step5:

這次專案選用"服務帳戶金鑰"

Step6:

選擇新增服務帳戶 — 輸入服務帳戶名稱 — 選取角色 — project — 擁有者 — 建立,就能得到含有金鑰的json檔。

Step7:

同一個畫面,選取OAuth同意畫面,輸入"向使用者顯示的產品名稱"和"首頁網址"。

Step8:

回到專案裡install gem "google_cloud"

Step9:

進入config/initializers 然後建立一個名為google_vision.rb的檔案。 在google_vision.rb加入:

 require 'google/cloud/vision' 

Last step:

在create action裡加入google_vision_api設定,紅色框框請加入"project_id",請參照Step3的紅色框框。這裡會將我想要的url回傳值傳回首頁,想要的回傳值不同可做不同的設定,請參考google vision api document。

除錯:

在最後一步時,一直卡在能夠在rails server讀到回傳值,但不知道如何show在page上,後來才發現自己一開始的設定是上傳照片後,直接儲存,然後才使用google vision api分析,然後得到回傳值,此時能show出來的資料只有我先前儲存的資料。正確做法是先上傳照片,使用google vision api分析,得到回傳值,再儲存。

--

--

No responses yet