2016-02-28 34 views
4

我試圖使用雲視覺API,並且能夠提出成功的請求,但即使提供了測試圖像,我的響應也會回覆空白API文檔。來自Google Vision API的空回覆與存儲在Google雲端存儲中的圖像

請求正文:

const imagePath = `gs://[bucket_name]/faulkner.jpg`; 
const requestObject = { 
    requests: [ 
    { 
     image: { 
     source: { 
      gcsImageUri: imagePath 
     } 
     }, 
     features:[ 
     { 
      type: 'LABEL_DETECTION', 
      maxResults: 100 
     } 
     ] 
    } 
    ] 
}; 

faulkner.jpg

響應體:

{ 
    "responses": [{}] 
} 

我已經使用雲API控制檯和複製請求字段甚至試過了,太不工作

const apiKey = 'myAPIKey'; 
const fields = `fields=responses(labelAnnotations)&`; 
const visionAPI = `https://vision.googleapis.com/v1/images:annotate?${fields}key=${apiKey}`; 

任何幫助將不勝感激。

回答

0

,這是對我工作......

  1. 你不需要的OAuth,只是一個API密鑰。

這是我做錯了......

在我的HTTP調用,我需要我的包裹在一個新的對象請求字面作爲

{data: requestBody } 

爲了澄清,

// My old call 
HTTP.call("POST", "https://vision.googleapis.com/v1/images:annotate?key=myAPIKey", requestBody, myCallback); 

// To my new call 
HTTP.call("POST", "https://vision.googleapis.com/v1/images:annotate?key=myAPIKey", {data: requestBody}, myCallback); 

// reqeustBody example 

{ 
    "requests": 
    [ 
     { 
     "features": 
      [ 
      { 
       "type": "LABEL_DETECTION" 
      } 
      ], 
     "image": 
      { 
      "source": 
       { 
       "gcsImageUri": "gs://myBucketNameHere/myDemoImageNameHere.jpg" 
       } 
      } 
     } 
    ] 
    } 

注意:有幾件事情需要完成。

  1. 圖像位於您的Google雲端平臺存儲桶中。
  2. 圖片名稱與存儲中的名稱完全相同。
  3. 圖像必須有東西檢測,即如果使用FACE_DETECTION圖像必須有人臉。
  4. Google雲端平臺存儲中的圖像必須必須檢查到公開分享

我使用上面我的形象命名演示image.jpg的,一切工作現在,我包裹requestBody非常相同的電話。

0

您是否正在使用適當的令牌進行OAuth2操作。對於使用Vision API和gCS Images,我們不能只使用API​​ Key。

0

您是否嘗試使用oauth2訪問密鑰進行請求?有一個快速和骯髒的方式來測試這在命令行上,如果你有gcloud工具:

  • Create and download一個service account json key
  • 設置gcloud使用該服務帳戶:

    gcloud auth activate-service-account --key-file <service-account-file.json> 
    
  • 使用gcloud auth print-access-token獲取訪問令牌並執行curl請求:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ 
        -H "content-type: application/json" \ 
        --data-binary '{"requests": [{"image": {"source": {"gcs_image_uri": "gs://your-bucket/your-object.jpg"}}, "features": [{"type": "LABEL_DETECTION", "maxResults": 100}]}]}' \ 
        "https://vision.googleapis.com/v1/images:annotate?alt=json" 
    

供生產使用,但是,你要明確使用oauth2 flow,讓您的訪問令牌,因爲他們是短暫的,需要提神。我在這個確切問題

相關問題