PHPMailer & Google Places API: добавьте изображение здания в электронное письмо на основе адреса - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над оповещением по электронной почте, и я хотел бы добавить "витрину" адреса в тело письма.

Если вы введете адрес в Google Maps, он даст вамкартина бизнеса.Вот пример:

3 Brewster Rd Newark, Нью-Джерси 07114

enter image description here

Используя API Google Адресов, я сначала должен использоватьФункция поиска с названием компании, а также долготой и широтой предприятия, подобная этой:

https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CmRaAAAALDzLv8Jigfiya7mL7VfJAWWcqqA5vDpCuVzgOak0oF_Wm_ttkS20FnT-5rFX_B-cBWPjPZ6y6TY-EtAzmKOZqzJjyQ5faYf7NN8b9QHOzc_qftgB4ARXpRcH-Aa8K48TEhDUY37t5YYC9xPcyzMUDel0GhQ3bD_4Hi8mnv9o2XlIQtisgFoQIg&key=YOURKEY

В ответ на это мне дадут справочную строку для фотографий, подобную этой:

{
"candidates" : [
  {
     "formatted_address" : "3 Brewster Rd, Newark, NJ 07114, USA",
     "name" : "Newark Liberty International Airport",
     "photos" : [
        {
           "height" : 3264,
           "html_attributions" : [
              "\u003ca href=\"https://maps.google.com/maps/contrib/107579982076225587505/photos\"\u003evicente valcarcel\u003c/a\u003e"
           ],
           "photo_reference" : "CmRaAAAALDzLv8Jigfiya7mL7VfJAWWcqqA5vDpCuVzgOak0oF_Wm_ttkS20FnT-5rFX_B-cBWPjPZ6y6TY-EtAzmKOZqzJjyQ5faYf7NN8b9QHOzc_qftgB4ARXpRcH-Aa8K48TEhDUY37t5YYC9xPcyzMUDel0GhQ3bD_4Hi8mnv9o2XlIQtisgFoQIg",
           "width" : 2448
        }
     ],
     "rating" : 3.1
  }
],
"status" : "OK"

Я могу тогдапоместите ссылку на фотографию в другую строку, чтобы получить фотографию, например:

https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CmRaAAAALDzLv8Jigfiya7mL7VfJAWWcqqA5vDpCuVzgOak0oF_Wm_ttkS20FnT-5rFX_B-cBWPjPZ6y6TY-EtAzmKOZqzJjyQ5faYf7NN8b9QHOzc_qftgB4ARXpRcH-Aa8K48TEhDUY37t5YYC9xPcyzMUDel0GhQ3bD_4Hi8mnv9o2XlIQtisgFoQIg&key=YOURKEY

Теперь я столкнулся с проблемой.Почему картина отличается от того, если бы я просто погуглил?Вот изображение, которое я получаю:

enter image description here

Мне нужна помощь с двумя вещами.

Как я могу взять справочную строку фото такчто я могу поместить его в другую строку, чтобы я мог получить изображение и затем вставить это изображение в электронное письмо?

Вот моя попытка:

$companyname   = $row["company"];
$address   = $row["address"];
$city   = $row["city"];
$state   = $row["state"];
$zip   = $row["zip"];
$lat   = $row["lat"];
$long   = $row["long"];



$getphotoreference = 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input='.$company.'&inputtype=textquery&fields=photos,formatted_address,name,opening_hours,rating&locationbias=circle:2000@'.$lat.','.$long.'&key=YOURKEY';


echo $getphotoreference;


$arr = json_decode($getphotoreference, true);
$ihavethephotoreference = $arr['rows'][5]['candidates'][5]['photo_reference']['text'];


$strongfrontstring = 'https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference='.$ihavethephotoreference.'&key=YOURKEY';



$image = file_get_contents($strongfrontstring);
$mail->addStringEmbeddedImage($image, 'storepicture', 'storepic.png', 'base64', 'image/png');
...