web-dev-qa-db-ja.com

Googleマップの時間をWebサイトに表示して、Googleマップを更新するとWebサイトの時間が更新されるようにすることは可能ですか?

私はこのために正しい方向に向けられることを望んでいました、私の上司はウェブサイトの営業時間をGoogleマップ/場所の営業時間にリンクさせたいので、Googleの時間と時間を更新するだけで心配する必要はありませんサイトについて。私はGoogle APIに精通していないので、どこから始めればいいのかわかりません。

Googleマップを埋め込みましたが、時間は含まれず、住所だけが含まれます

ウェブサイトはgithubでホストされており、

3
franktherabbit

Googleはこれを簡単にしませんが、次のphpコードを使用してスクレイピングできます。最初に「場所ID」が必要です。次のツールを使用してこれを取得できます。 https://developers.google.com/places/place-id

ビジネス名の入力を開始し、Googleがそれを見つけたら、ポップアップからプレイスIDをコピーできます。

PHPは次のとおりです。ENTER_PLACE_ID_HEREを前のステップで取得した場所IDに置き換えます。

<?
    $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

Googleプレイスのplace_idとAPIキーがある場合、次のURLはJSONオブジェクトとして時間を返します。

「YOUR_PLACE_ID」を実際のGoogle Places place_idに、「YOUR_API_KEY」をGoogle Places APIキーに置き換えてください。

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

標準の言語配列だけでなく、0から6までの曜日番号(日曜日= 0)として、毎日の時間を取得します。日数はresult.opening_hours.periodsにあり、標準言語配列はresult.opening_hours.weekday_textです

weekday_textはより使いやすく、periodsは結果を異なる言語で表示するなどのことを可能にします。

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