Я пытался получить скриншот из API, но когда я декодирую изображение и сохраняю его, я получаю сломанное изображение. Ниже приведен код, который я использую. Я создал tinyurl для образца файла, содержащего ответ Google, если вы хотите проверить его.
$name = 'test';
$result = file_get_contents('http://tinyurl.com/q4smyod');
$result = json_decode($result, true);
$decoded=base64_decode($result['screenshot']['data']);
file_put_contents('img/'.$name.'.jpg',$decoded);
Как уже упоминалось в моем комментарии, проблема вызвана ошибкой шифрования Google при работе с PHP-API. Если у вас возникла эта проблема, просто используйте следующие функции замены, чтобы исправить кодировку.
$data = str_replace('_','/',$result['screenshot']['data']);
$data = str_replace('-','+',$data);
$decoded = base64_decode($data);
Это должно помочь вам приблизиться к вашей цели. Вы не определили имя, и ваша json_decoding была немного странной:
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
$result = file_get_contents('http://tinyurl.com/q4smyod');
$name = 'test2';
$result = json_decode($result, true);
$decoded = base64_encode($result['screenshot']['data']);
file_put_contents($name.'.jpg',$decoded);
?>