web-dev-qa-db-fra.com

Est-il possible d'afficher les heures de Google Maps sur un site Web, afin que les heures du site Web soient mises à jour lors de la mise à jour de Google Maps?

J'espérais être dirigé dans la bonne direction à cet égard, mon patron souhaite que les heures d'ouverture des magasins sur le site Web soient liées aux heures affichées sur Google Maps/lieux, afin qu'il puisse simplement mettre à jour les heures et les heures sur Google sans avoir à s'inquiéter. sur le site. Je ne suis pas familier avec Google Api, donc je ne sais pas par où commencer.

J'ai essayé d'intégrer Google Maps, mais cela n'inclut pas les heures, mais l'adresse

Le site web est hébergé sur github,

3
franktherabbit

Google ne rend pas cela facile, mais vous pouvez le supprimer avec le code php suivant. Pour commencer, vous avez besoin de "l'identifiant de lieu". Vous pouvez l'obtenir à l'aide de cet outil: https://developers.google.com/places/place-id

Commencez à saisir le nom de l'entreprise et une fois que Google l'a trouvé, vous pouvez copier l'ID de lieu à partir de la fenêtre contextuelle.

Voici le PHP - remplacez ENTER_PLACE_ID_HERE par l'identifiant de lieu que vous avez obtenu à l'étape précédente:

<?
    $curlURL = 'https://www.google.com/maps/search/?api=1&query=Google&query_place_id=ENTER_PLACE_ID_HERE';
    $curl = curl_init($curlURL);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1 );
    $response=curl_exec( $curl );
    for($i=0;$i<7;$i++){
        $day = jddayofweek($i,1);
        $start=stripos($response,'[\"'.$day.'\",')+strlen($day)+9;
        echo($day.": ".substr($response,$start,stripos($response,'\"]',$start)-$start)."<br />");
    }
?>
3
Sean

Si vous disposez d'un identifiant d'emplacement et d'une clé API Google Adresses, l'URL suivante renvoie les heures sous forme d'objet JSON.

Assurez-vous simplement de remplacer "YOUR_PLACE_ID" par votre adresse Google Adresses actuelle et "YOUR_API_KEY" par votre clé d'API Google Adresses.

https://maps.googleapis.com/maps/api/place/details/json?placeid=YOUR_PLACE_ID&fields=opening_hours&key=YOUR_API_KEY

Vous obtiendrez des heures pour chaque jour sous forme de nombre de jours de la semaine, de 0 à 6, où dimanche = 0, ainsi qu'un tableau de langues standard. Les jours numérotés se trouvent dans result.opening_hours.periods et le tableau de langues standard est result.opening_hours.weekday_text.

weekday_text est plus simple à utiliser tandis que periods vous permettra d’afficher des résultats dans différentes langues.

Voici à quoi cela pourrait ressembler en PHP:

$url = 'https://maps.googleapis.com/maps/api/place/details/json?placeid=YOUR_PLACE_ID&fields=opening_hours&key=YOUR_API_KEY';

$hours_raw = @file_get_contents($url);
if (!empty($hours_raw)) {
  $hours_json = json_decode($hours_raw, true);
  if (!empty($hours_json['result']['opening_hours'])) {
    $business_hours = $hours_json['result']['opening_hours']['weekday_text'];
  }
}

// $business_hours is an array you can use however you like e.g.
echo '<ul>';
foreach ($business_hours as $weekday) {
  echo '<li>' . $weekday . '</li>';
}
echo '</ul>';
2
Trent Reimer