Как реализовать API_KEY для Google DirectionsApi? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть API_Key (в этом посте я, конечно, показываю фальшивый) Это не похоже на работу.

Мои предположения (возможно, неверные): 1) googeMaps api_Key одинаков для направлений Api 2) Библиотека должна быть в состоянии вытащить ключ автоматически (без моего участия, по крайней мере, так сказал мне старший разработчик).

Когда я не устанавливаю ключ API вручную, я получаю эту ошибку:

Must provide either API key or Maps for Work credentials.

Таким образом, я статически вставил ключ g eoApiContext.setApiKey("aaksijbdfiuewifn"), и затем я получил это сообщение:

This IP, site or mobile application is not authorized to use this API key. Request received from IP address 67.207.40.144, with empty referer

Вопрос (s)

1) Могу ли я использовать GoogleMapsApi в качестве DirectionsApi?

2) должны ли GeoApiContext и DirectionsApi автоматически получать API_Key из манифеста?

3) Почему это не работает, когда я вручную устанавливаю api_key?

Соответствующие фрагменты кода: Manifest:

<application>

        <!-- Google MAP API key (standard account for debug builds) -->
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="salkdfnaspkfasdsdf" />

    </application>

и DirectionApiHelper:

    fun requestDirections(onSuccess: (DirectionsResult) -> Unit, onError: (String) -> Unit, vararg wayPoints: LatLng) {
       Single.fromCallable {
           val dirApiRequest: DirectionsApiRequest = DirectionsApi.getDirections(getGeoContext(), "", "")
           dirApiRequest.mode(travelMode)
           dirApiRequest.destination(destinationPosition)
           dirApiRequest.origin(originPosition)
           dirApiRequest.units(unit)
           dirApiRequest.waypoints(*wayPoints)
           dirApiRequest.optimizeWaypoints(optimize)
           return@fromCallable dirApiRequest.await()
       }
               .subscribeOn(Schedulers.io())
               .observeOn(AndroidSchedulers.mainThread())
               .subscribe(
                       { directionsResult -> onSuccess(directionsResult) },
                       { error -> onError(error.message?: "directions API failed") } //Log.e(TAG, "failed to get Directions:  ${error.message}")
               )
   }

   private fun getGeoContext(): GeoApiContext {
       return GeoApiContext().setQueryRateLimit(3)
               .setApiKey("SOIdfwioewoinAIEsoiehf")
               .setConnectTimeout(3, TimeUnit.SECONDS)
               .setReadTimeout(3, TimeUnit.SECONDS)
               .setWriteTimeout(3, TimeUnit.SECONDS)
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...