Конвертировать Python в PHP - учетные данные авторизации GCP - PullRequest
0 голосов
/ 02 мая 2018

Я использую GCP Cloud Vision API с Python для получения некоторой информации из изображений. В частности, я отправляю фотографию продукта в этот API и извлекаю связанные с ним веб-объекты; Одним из них является почти всегда бренд.

Мой основной скрипт Python, который выполняет эту работу, выглядит следующим образом:

import  io
from google.cloud import vision
from google.cloud.vision import types
import os
import cv2
import numpy as np

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/Users/User/PycharmProjects/Project_name.json"

def detect_text(file):

    client = vision.ImageAnnotatorClient()

    with io.open(file, 'rb') as image_file:
        content = image_file.read()

    image = types.Image(content=content)
    web_detection = client.web_detection(image=image).web_detection
    print(web_detection)

file_name = "/Users/User/Desktop/Image.jpg"
img = cv2.imread(file_name)
detect_text(file_name)

Файл Project_name.json содержит некоторые учетные данные для авторизации, чтобы я мог иметь доступ к клиенту API Google Cloud.

Я хочу сделать то же самое с PHP. По этой причине я написал следующий PHP-скрипт:

<?php

namespace Google\Cloud\Samples\Vision;
use Google\Cloud\Vision\V1\ImageAnnotatorClient;

function detect_web($path)
{
    $imageAnnotator = new ImageAnnotatorClient();

    $image = file_get_contents($path);
    $response = $imageAnnotator->webDetection($image);
    $web = $response->getWebDetection();

    print($web);
}

$path = '/Users/User/Desktop/Image.jpg';
detect_web($path);

?>

Но когда я запускаю это, я получаю следующую ошибку:

Fatal error: Uncaught Error: Class 'Google\Cloud\Vision\V1\ImageAnnotatorClient' not found in /opt/lampp/htdocs/index.php:12 Stack trace: #0 /opt/lampp/htdocs/index.php(26): Google\Cloud\Samples\Vision\detect_web('/Users/User...') #1 {main} thrown in /opt/lampp/htdocs/index.php on line 12

Очевидно, что эта ошибка появляется, потому что (прежде всего) я не предоставил учетные данные авторизации Google, как я делал в Python выше (os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/Users/User/PycharmProjects/Project_name.json").

Что я должен сделать, чтобы получить соответствующую библиотеку Google и получить к ней доступ через мой PHP-скрипт, чтобы получить тот же результат, что и в моем Python-скрипте?

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете создать учетную запись службы и выбрать JSON в качестве типа ключа для аутентификации в Cloud Vision API. Шаги для настройки аутентификации предоставляются здесь . Получив файл ключа JSON, вы можете настроить переменную среды с помощью команды «export GOOGLE_APPLICATION_CREDENTIALS», указывающей на файл ключа JSON. Вы можете использовать версию PHP клиентской библиотеки для API Cloud Vision. Также для справки приведена Справочная документация по PHP API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...