Google Places Photo API возвращает изображение, однако я не уверен, как отправить его на мой веб-интерфейс - PullRequest
0 голосов
/ 22 января 2019

Если бы я вставил этот URL в браузер, API действительно вернул изображение:

https://maps.googleapis.com/maps/api/place/photo?
maxwidth=400&photoreference=examplereference&key=examplekey

Имейте в виду, что я удалил фотообращение, потому что он слишком длинный, и секретный ключ, потому что он должен бытьprivate.

После получения изображения с помощью PHP я не могу отправить что-либо, с чем могу работать, своему внешнему интерфейсу.

$getImage = file_get_contents("https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=examplereference&key=examplekey");
$image = json_decode($getImage);
    return response()->json([
        'message' => 'Fetched sight!',
        'image' => $image
    ], 201);

Если я пытаюсь отправить $image ввнешний интерфейс возвращает NULL, и если я пытаюсь отправить $getImages, я получаю ошибку "Malformed UTF-8 characters, possibly incorrectly encoded".

Даже после прочтения документации - https://developers.google.com/places/web-service/photos, я не могу понятьчто я должен получить от этого запроса.

1 Ответ

0 голосов
/ 22 января 2019

Если вы хотите передать изображение с помощью конечной точки JSON API, вы можете использовать base64 его содержимое.

<?php

$getImage = file_get_contents("https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=examplereference&key=examplekey");
$image = base64_encode($getImage);
    return response()->json([
        'message' => 'Fetched sight!',
        'image' => $image
    ], 201);

На стороне клиента вы можете создать изображение следующим образом:

<img src="data:image/png;base64, <image content here>" />

Остерегайтесь, клиент выполнит некоторые дополнительные операции по созданию изображения (не оптимизировано для контента с большим изображением).

Другое решение может состоять в том, чтобы загрузить изображение с бэкэндом и предоставить ему классический URL-адрес с вашего сервера.

...