谷歌云视觉API:vision.detectText()不接受谷歌驱动器v3 URI

问题描述:

vision.detectText()当传递由web驱动器v3以webviewLink格式提供的URI从drive.files.get()获得的扼流圈谷歌云视觉API:vision.detectText()不接受谷歌驱动器v3 URI

我webViewLink采集是:

drive.files.get({ 
    auth: auth, 
    fileId: options.fileID, 
    //fields: 'webContentLink' // <-- downloads the file 
    fields: 'webViewLink'  // <-- "views" the file 
},function(err, response) {} 

response.webViewLink的格式为:

https://drive.google.com/file/d/0Bw4DMtLCtPMkOTlXR1l4Nkw1WGs/view?usp=drivesdk 

vision.detectText(response.webViewLink)与电抗器:

ERROR: { PartialFailureError: A failure occurred during this request. 
at /Users/node_modules/@google-cloud/vision/src/index.js:434:15 
at /Users/node_modules/@google-cloud/vision/src/index.js:126:5 
at _combinedTickCallback (internal/process/next_tick.js:80:11) 
at process._tickCallback (internal/process/next_tick.js:104:9) 
errors: 
[ { image: 'https://drive.google.com/file/d 
/0Bw4DMtLCtPMkOTlXR1l4Nkw1WGs/view?usp=drivesdk', 
errors: [Object] } ], 
response: { responses: [ [Object] ] }, 
message: 'A failure occurred during this request.' } 

用“传统”表单(如http://www.identifont.com/samples/houseindustries/NeutraText.gif)取代webViewLink URI工作正常。

请注意,https://cloud.google.com/vision/docs/request#providing_the_image表示“您可以在您的请求中提供图片...作为可公开访问的HTTP或HTTPS URL”。

Drive v3 webViewLink格式是否应视为vision.detectText()的“公开访问”?

如果没有,该格式如何修改为vision.detectText()支持对谷歌驱动器托管的图像进行评估可以接受?

+0

我在下面添加了一个答案 - 但是webContentLink返回了什么?这是一个文件的URL? –

虽然这是一个可公开访问的URL,但不幸的是它是嵌入了图像的页面的URL,而不是图像文件本身的URL。

因此,您无法在您的请求中使用Google云端硬盘网址。你最简单的选择可能是谷歌云存储......有一个网络界面来上传你的图片,在这里:

https://console.cloud.google.com/storage/browser

在这个页面,你会:

  1. 点击创建桶并按照说明操作(您可以接受默认设置,您只需创建一个全局唯一的存储桶名称)。
  2. 点击上传文件并选择您的图片。
  3. 上传后,选中该文件旁边的复选框,然后点击公开分享
  4. 点击公共链接(与文件在同一行)获取公共URL。

迈克同意,我也做了谷歌应用程序脚本一些研究,以视觉API,因为它们都是在谷歌伞,所以我做了一个错误的假设,他们可以“交谈”对方(这就是为什么我发现这篇文章)。但它不能工作。我相信这是Google Vision API的本质。

Mike的答案只是一点点的附加,如果你通过身份验证(我相信你必须经历这个,因为你需要上传文件到谷歌存储),那么你可能不需要指定文件将被公开用于您的应用程序。