私はこのために正しい方向に向けられることを望んでいました、私の上司はウェブサイトの営業時間をGoogleマップ/場所の営業時間にリンクさせたいので、Googleの時間と時間を更新するだけで心配する必要はありませんサイトについて。私はGoogle APIに精通していないので、どこから始めればいいのかわかりません。
Googleマップを埋め込みましたが、時間は含まれず、住所だけが含まれます
ウェブサイトはgithubでホストされており、
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 />");
}
?>
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>';