前提・実現したいこと
こんにちは。
画像の文字起こしアプリの制作をしています。色々試しているのですが、{responses=[{error={code=3, message=Bad image data.}}]} が返ってきます。調べてみるとエンコードの問題というところが多いのですが、console.log(imageBlob)の段階では、特段問題なく出力されているように思います。
それ以降のコードに関しては、コピペなのでなんとも言えませんが、調べてみたところ特に問題はないように思い、取得API(CloudVision)の認証の問題なのかなと、再度APIを取得したり、認証情報を作成し直したりしていますが、解消されません…
どなたか、アドバイス頂けると助かります。
発生している問題・エラーメッセージ
2019/06/21 7:57:05 デバッグ P1BORw0KGgoAAAANSUhEUgAABBEAAAIyCAAAAAA/eA0VAAAXfklEQVR4Pz8/K2M/Pz8/Pz8/P0VjP1hsJDY 2019/06/21 7:57:05 デバッグ {responses=[{error={code=3, message=Bad image data.}}]}
該当のソースコード
function doPost(e){ const url = "https://dividable.net/wp/wp-content/uploads/2019/01/sample2.png"; //UrlFetchAppは、urlのheadersとmethodを引数でとる const imageResponse = UrlFetchApp.fetch(url,{ 'headers':{ 'Content-Type': 'application/json; charset=UTF-8', }, //get,post,put,delete 'method': 'get' }); //バイナリ形式でデータ取得 const imageContent = imageResponse.getContent(); //バイナリデータをエンコードに変換 const imageBlob = Utilities.base64Encode(imageResponse); console.log(imageBlob) //自分のapiキー const API_KEY = '----'; const visionRequestUrl = 'https://vision.googleapis.com/v1/images:annotate?key=' + API_KEY; const payload = JSON.stringify({ "requests":[ { "image": { "content": imageBlob }, "features": [ { "type": "TEXT_DETECTION", "maxResults": 1 } ] } ] }); const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, { method: "POST", contentType: "application/json", payload: payload, }) .getContentText(); const visionTextJson = JSON.parse(visionTextResponse); //JSON形式に変換 console.log(visionTextJson) }
試したこと
APIの再登録
補足情報(FW/ツールのバージョンなど)
GoogleAppsScriptで作業してます
Cloud VisionApiを使っています
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/21 02:49