Google Vision API for Rails
這次專案為,使用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分析,得到回傳值,再儲存。