0

GoogleのAPIを使用して、ユーザーに明示的に許可を求めることなく、ユーザーの現在の郵便番号を取得する方法はありますか?Googleは現在、ユーザーが特定のサービスへのアクセスを許可する必要がある認証プロトコルであるOAuth2.0を使用していることを理解しています。しかし、私は彼らに尋ねることなくユーザーの場所を見つけたいです!

これは可能ですか?IPアドレスは通常、誤った結果を返すため、私はIPアドレスの変換には興味がありません。同様に、HTML5のジオロケーション機能もユーザーの許可が必要なため、機能しません。

4

2 に答える 2

2

私は以前、同じような状況で同じようなことをしなければなりませんでした。そして、私が得た答えはおそらく最も美しいものではありませんが、それは機能し、郵便番号を取得することができます。

そのようなサービスはいくつかありますが、MaxMindは、かなり正確な緯度経度を提供するのに優れていることがわかりました(少なくとも都市/郵便番号の読み取りでは)。これにより、phpで自分でこれに対処する必要がなくなります。

maxmindリンク

警告:maxmindへのリンクを返すか、月額ライセンスを購入する必要があります。申し訳ありませんが、他のサービスを探すこともできます。そうしないと、自分でサービスを作成する必要があります。

つまり、ページにスクリプトを含めるという考え方です。これで、ページにこれらの関数が追加されました。

function geoip_country_code() { return 'US'; }
function geoip_country_name() { return 'United States'; }
function geoip_city()         { return 'San Diego'; }
function geoip_region()       { return 'CA'; }
function geoip_region_name()  { return 'California'; }
function geoip_latitude()     { return '32.7153'; }
function geoip_longitude()    { return '-117.1573'; }
function geoip_postal_code()  { return ''; }
function geoip_area_code()    { return '619'; }
function geoip_metro_code()   { return '825'; }

ここから、いくつかのジオコーディングを行う必要があります(グーグル経由または別のものを選択してください)。ジオコーディングから応答を取得すると、結果をループして郵便番号を引き出すことができます。そのステップでより多くの入力が必要な場合は、もう少しスクリプトを掘り下げることができます。

最も洗練されたアプローチではないかもしれませんが、私もジオロケーションを使用できないという制約があり、JavaScriptのみの環境にいました。これは私のために働いた。乾杯。

于 2012-07-05T20:35:06.143 に答える
2

サードパーティに保存されているユーザーに関する情報(自宅や職場の「郵便番号」など)にアクセスするには、Google(またはFacebook ...または[ここにソーシャルネットワークを挿入])を使用してユーザーをoAuthする必要があります。サイト。ただし、一度認証されると、ユーザーの現在の郵便番号や場所は取得されません。あなたは彼らの現在の場所または彼らの自宅の住所または彼らの職場の住所が欲しいですか-あなたは明確にしたいかもしれません。とにかく、ユーザーの現在の場所が必要な場合は、HTML5ジオロケーションAPIを使用することをお勧めします。

ジオロケーションAPIの最も簡単な使用法は次のようになります。

function get_location() {
  navigator.geolocation.getCurrentPosition(show_map);
}

これには、検出、エラー処理、およびオプションがありません。Webアプリケーションには、おそらく最初の2つが含まれている必要があります。ジオロケーションAPIのサポートを検出するには、Modernizrを使用できます。

function get_location() {
  if (Modernizr.geolocation) {
    navigator.geolocation.getCurrentPosition(show_map);
  } else {
    // no native support; maybe try Gears?
  }
}

HTML5ジオロケーションのリソース:

于 2012-07-05T20:27:20.817 に答える