web-dev-qa-db-ja.com

Googleマッププラットフォームへのキーレスアクセスは廃止されました

Google MAPS AP​​Iキーを使用してURLを取得して「ポリライン」を描画しようとすると、ログにエラーが記録されることがあります。

"error_message": "Google Maps Platformへのキーレスアクセスは廃止されました。すべてのAPI呼び出しでAPIキーを使用して、サービスの中断を回避してください。詳細については、http://g.co/dev/maps-no-accountを参照してください"、" routes ":[]、" status ":" OVER_QUERY_LIMIT "

マニフェストにこれがあります:

<meta-data
        Android:name="com.google.Android.geo.API_KEY"
        Android:value="MY_GOOGLE_MAPS_API_KEY" />

また、このAPIキーはAPI CONSOLEで「有効」になっており、Google Maps Android SDKおよびDirections APIに制限されています。 Google APIコンソールの請求も有効にしていますが、それでもこのエラーが発生することがあります。

12
grantespo

2018年6月11日以降、GoogleはAPIキーの使用を強制し始めました。キーレスで使用すると、エクスペリエンスが低下したり、OVER_DAILY_LIMITやOVER_QUERY_LIMITなどのエラーが発生します。

ソース: Google Maps Platformからの重要な更新

次のようにURLにAPIキーを挿入することは良い解決策です。

String url = "https://maps.googleapis.com/maps/api/directions/"+output+"?"+parameters + "&key=" + MY_API_KEY

ただし、キー制限が適切に設定されていることを確認してください。キーをアプリに制限している場合、HTTPを介した要求はIPアドレスに関連しているため、キーが機能しないことがあります。つまり、Androidアプリとマニフェストを正しく構成した場合でも、ACCESS_DENIEDが発生する可能性があります。これは、制限を変更することで確認できます。

テスト目的の制限なしの例: enter image description here

APIキーと制限の詳細: キーを取得するためのクイックガイド

26
probitaille

jd-alexander's direction library を使用するものについては、ルーティングビルダーにAPIキーを追加することを忘れないでください:

Routing routing = new Routing.Builder()
                .travelMode(/* Travel Mode */)
                .withListener(/* Listener that delivers routing results.*/)
                .waypoints(/*waypoints*/)
                .key(/*api key for quota management*/)
                .build();
    routing.execute();
4
ninbit

jd-alexanderのGoogleルートライブラリ を使用している場合は、以下のコードとしてGoogle APIキーを使用します。

Routing routing = new Routing.Builder()
                .key(YOUR_KEY)
                .travelMode(AbstractRouting.TravelMode.DRIVING)
                .withListener(this)
                .alternativeRoutes(false)
                .waypoints(SourceLatLng, DestinationLatLng)
                .build();
        routing.execute();

疑問がある場合は、コメントを残すことをheしないでください。

1
AG Mohammed