kindle OCRアプリ開発 Google Drive APIの導入

・Google Drive APIを使った読み取りプログラム

Google Drive API導入に必要なライブラリをインストールします(Anaconda環境)。

conda install google-auth
conda install google-auth-oauthlib
conda install -c conda-forge google-auth-httplib2
conda install -c conda-forge google-api-python-client

・Google Drive APIで画像読み取りを行うコード

import os
import pickle
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload

def upload_and_ocr(file_path):
    # OAuth 2.0 クライアントIDのJSONファイルを指定
    creds = None
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)

    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(client_path, ['https://www.googleapis.com/auth/drive'])
            creds = flow.run_local_server(port=0)

        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    service = build('drive', 'v3', credentials=creds)

    file_metadata = {
        'name': os.path.basename(file_path),
        'mimeType': 'application/vnd.google-apps.document'
    }

    media = MediaFileUpload(file_path, mimetype='image/jpeg', resumable=True)
    file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()

    doc_file = service.files().export(fileId=file.get('id'), mimeType='text/plain').execute()

    print(doc_file.decode('utf-8'))

    return doc_file.decode('utf-8')

上記のプログラムを起動させようとしたら、動きませんでした。
ブラウザで以下のような表示が出ました。

アクセスをブロック: Google API OCR は Google の審査プロセスを完了していません
Google API OCR は Google の審査プロセスを完了していません。

このアプリは現在テスト中で、デベロッパーに承認されたテスターのみがアクセスできます。アクセス権があると思われる場合は、デベロッパーにお問い合わせください。

Google API OCR のデベロッパーの場合は、エラーの詳細をご確認ください。
エラー 403: access_denied

エラーをクリックしての表示は以下です。

エラー 403: access_denied
リクエストの詳細: access_type=offline response_type=code redirect_uri=http://localhost:53239/ state=FIgxOSyZ7NVeLtSeemjkVnhx9ZbKGp client_id=xxxx-th5s02f42sa8t80um3se3gv1mtubm8pt.apps.googleusercontent.com scope=https://www.googleapis.com/auth/drive

上記については、Google Cloudにログインして、公開ステータスを「本番環境」にしたら動きました。

タイトルとURLをコピーしました