【質問】Google-Maps-APIのキーの認証について

275 views
Skip to first unread message

花たん

unread,
Nov 5, 2008, 5:24:04 PM11/5/08
to Google-Maps-API-Japan
Google Mapsを埋め込んだ、html形式のファイルを作成しました。
キーを正しく設定しました。
後は、このファイルをサーバにアップして表示できるか確認しました。
http://xxxxxxx/とアクセスしたら、正常に表示できました。

ここからが、キーの認証についての質問です。
このhtml形式のファイルは、サーバにアップせず、私のPC内の(例えば)デスクトップに保存したとします。
そして、このファイルをダブルクリックしたら、ページが表示されます。
さらに、キーを適当な日本語や、空白、文字列に変更しても、私のPC内ではGoogle Mapが表示されます。
しかし、これをサーバにアップし、http://xxxx/でアクセスするとキーの登録の異常メッセージがでます。

(1)キーの認証はどの用に行っているのでしょうか。参考になる資料がほしいです。
(2)Google MapのAPIを使ったアプリケーション開発では、サーバにアップして開発するのと、せずに私のPC内で作業をするとでは、開発の
違いがあるのでしょうか。たとえば、使えるAPIに制限があるかの情報がほしいです。
(3)html形式で作成したソースを読むと、”<script src=xxxxxx > </script>"  で囲まれたところで
Google Map APIライブラリのインクルードをしているという認識です。xxxには、自分のキーや、アドレスやヴァージョン情報が入っている
ことまでは、理解ができました。しかし、http://xxxx/でアクセスする時、と私のPC内でアクセスする時とでは、キーの認証をクライアント側
でやっているのか、サーバ側でやっているのかわかりません。

何かアドバイスをおねがいします。

はじめての投稿になりますが宜しくお願いしいます。
以上

Masashi.K

unread,
Nov 5, 2008, 7:50:53 PM11/5/08
to Google-Maps-API-Japan
>花たん さん

なるほど。面白い着眼点ですね。

(1)Google Maps APIのライブラリが読み込まれた時点で行われるようです。
厳密には、最初の、”<script src=xxxxxx > </script>" で返されるjavascriptで
行っているようです。その後、関係するライブラリを読み込むみたいです。

(2)特にないと思います

(3)ライブラリ側(つまりクライアント側)で行っているようです。

参考にしてみてください。

花たん

unread,
Nov 5, 2008, 8:55:20 PM11/5/08
to Google-Maps-API-Japan
回答ありがとうございます。

なるほど、keyの認証は、Google Maps APIのライブラリが読み込まれた時点で行われるのですね。  さっそくノートにメモしました^


PCのデスクトップでGoogle Mapsを作成しても違いがないのは、開発するのに、サーバにアップする手間を省けて、助かりますね。

クライアント側でKeyとURLの比較をすることがわかりました。ありがとうございます。

今から、どこで、その比較をどのように行っているか、
Google Maps APIのライブラリを読んでみます。

Google Maps 活用講座 をお気に入りに登録しました。Google Maps について、わかり易い説明があるHPですね^^

Mitu-Koike

unread,
Nov 6, 2008, 12:11:14 AM11/6/08
to Google-Maps-API-Japan
前に同じようなことで悩んだことがありましたのでご参考になれば。
複数のドメインを持っているサーバにアップロードした場合や、IPでサーバにアクセスした場合もGMaps API Keyの認証でエラーになりますよ
ね。

たとえば、gmap.htmlの中に記述されているGMaps API Keyがhoge.jpにて取得したものだった場合

http://www.hoge.jp/gmap.html
× http://localhost/gmap.html
× http://192.168.0.1/gmap.html

全て同じgmap.htmlファイルにアクセスしていても、localhostと192.168.0.1でアクセスするとエラーになります。
クライアントからリクエストされたドメイン名でGoogle側は認識していると私は割りきって考えました。

hoge.jp、localhost、192.168.0.1のGMaps API Keyを取得してソース内に書き込んでおく。
(アクセスされる可能性があるドメイン・IPのGMaps API Keyは取得しておく)
② JavaScriptにてリクエストされたドメインを判定して使用するAPIkeyを自動選択させる。

こんな形であれば、どんなドメインやIPでもGMapを表示することが可能になります。

Masashi.K

unread,
Nov 6, 2008, 5:31:49 AM11/6/08
to Google-Maps-API-Japan
>Mitu-Koikeさん

そうですね、昔は 「www」が付くか、付かないかでも違いましたからね。
ちょっと厄介でしたね。

ちなみに今は http://localhost はOKみたいですよ。
http://192.168.0.1/ はダメみたいですけど。
Message has been deleted
Message has been deleted

Mitu-Koike

unread,
Nov 7, 2008, 3:27:10 AM11/7/08
to Google-Maps-API-Japan
>Masashi.Kさん

いつもお世話になっております。昔は、複数のドメインを持っているサイトでは

http://www.hogemap.jp/ http://www.hogehoge.jp/ http://www.hogenosuke.jp/
http://hogemap.jp/ http://hogehoge.jp/ http://hogenosuke.jp/

こんな感じで沢山のkeyを発行してましたね~。で、切り分けて使ってました。
http://localhost/がOKなのは初耳でした。手元の環境で確認取りました。ありがとうございます。





>花たんさん

ご質問の(1)と(3)の件ですが、GoogleMapsを実行して認証するまでの流れとしてはこんな感じではないかと。


 ① クライアント(ブラウザ)がGoogleMapsを埋め込んだHTMLファイルにアクセスし、ダウンロードしながら実行する


 ② <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAA
~">
  ↑の部分が処理が行われた時、GoogleMapsのAPIライブラリを取得しに行く(インクルードしにいく)


 ③ GoogleMapsのAPIサーバにて引数(file=api&v=2.x&key=ABQIAAAA~)の取得と認証、GoogleMaps
のAPIライブラリの発行

1 APIサーバへ引数として送られてきたkeyは、どのドメイン名へ向けて発行されたものなのか?

2 APIサーバに取得しにきたクライアントが開いているHTMLファイルのURLのドメイン名は?

3 1 と 2 のドメイン名が一致するか?(認証)

4 ライブラリを返す (GoogleMapsAPIライブラリのVersion2.x または 認証エラーを表示する
JavaScript)


 ④ クライアント側にてGoogleMapsのAPIライブラリの読み込み・インクルード

 ⑤ GoogleMapsの描画開始 → 認証エラーの場合はエラーの表示



少なくとも認証はGoogleMapsのAPIサーバー側で行っているものだと割り切っていいと思います。

開発環境でブラウザ実行する際に file:\\\C:\GoogleMaps\GMaps.html などのファイルパスでアクセスしている場合、認
証エラーにはなりません。
(APIkeyすら入力してなくても動くという・・。これは花たんさんもお気付きになっていましたね。)


(2)の件については、開発の違いはありません。
これは、GoogleMaps API for Flash (Adobe Flash用のGoogleMapsAPI)での開発でも同様です。。
Reply all
Reply to author
Forward
0 new messages