HomeTravel ReportLocal FoodRail&BusAirportMileagemiscAbout Me
TechWiki
Updated : January 2011

Virtual Host での Google Keyの取り扱い方法

Google API Key は、使用するWEBサイトのURL毎に異なったKeyが発行される。

異なったURLでアクセスすると、「Google マップ APIに使用されているキーは他のウェブサイトに登録されています。…」の表示がされる。

ところが、Virtual Hostなどの設定により、複数のURIでアクセスされるサーバの場合、それぞれのURIに対応した複数のGoogle API Keyを取得し、それをJavascript中で切り替える必要がある。

対応方法

URLに対応して必要なJavascriptを動的に読み込むことで対応する。

「script」タグを動的に追加作成することとなる。

例)


includeGoogleAjax(location.hostname);

function includeGoogleAjax(sitename, cbf){
 var url = 'http://www.google.com/jsapi?key=' + getGoogleKey(sitename);
 if (cbf)
  url += '&callback=' + cbf;
 includeJS(url)
}

function getGoogleKey(sitename){
 switch (sitename) {
  case "(url 1)":
   return 'ABQIAAAACgxlchEzseP5OWCV5PeRwBRxUvSRp6iAzN9LpR…';
   break;
  case "(url 2)":
   return 'ABQIAAAACgxlchEzseP5OWCV5PeRwBR14xKUJIp27ucV4N…';
   break;


    …
  default:
   return 'ABQIAAAACgxlchEzseP5OWCV5PeRwBRAmWvONyTTbPyd…';
 }
}

function includeJS(url){
 var script = document.createElement("script");
 script.type = 'text/javascript';
 script.charset = 'utf-8';
 script.src = url;
 document.getElementsByTagName("head")[0].appendChild(script);
}



Copyright(c) 2012-2013 T.F.T. All rights reserved.