Не удается получить данные о местах с помощью Google Places API – этому проекту API не разрешено использовать этот API.

Я использую код из заданного здесь вопроса Автозаполнение текстового представления Google Places API Description -› place_id. Я изменил код, чтобы добавить его в свое приложение. Когда я запускаю код, он дает мне ответ ниже, когда я запускаю код

07-28 11:17:19.244: E/result(350): {"error_message":"This API project is not authorized to use this API. Please ensure that this API is activated in the APIs Console: Learn more: https:\/\/code.google.com\/apis\/console","predictions":[],"status":"REQUEST_DENIED"}

Я искал некоторые потоки и из приведенных ниже потоков

  1. Ключи Maps API для геокодирования не работают
  2. Этот IP-адрес, сайт или мобильное приложение не авторизовано для использования этого ключа API и одного или двух других

Я сделал следующие шаги, как было предложено.

  1. Создал ключ сервера из консоли и добавил его в проект.
  2. Включено Places API из консоли.
  3. Включено Geocoding API из консоли.

Вы можете увидеть на изображении ниже. введите здесь описание изображения

и когда я запускаю код, он все еще показывает мне ошибку, упомянутую выше. Нужно ли включать какие-либо другие API из консоли.

Карты работают хорошо, кроме этого. Если вы хотите знать, что это мой ключ API, добавленный в манифест.

<!-- Goolge Maps API Key Development mode -->
            <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyAbo3luzbyQTuuPLOyo_Ml***********" />

и я добавляю ключ сервера непосредственно к URL-адресу запроса, как показано ниже

private ArrayList<String> autocomplete(String input) {
ArrayList<String> resultList = null;
    HttpURLConnection conn = null;
    StringBuilder jsonResults = new StringBuilder();
    try {
        StringBuilder sb = new StringBuilder(PLACES_API_BASE + TYPE_AUTOCOMPLETE + OUT_JSON);
        sb.append("?key=" + API_KEY);
        sb.append("&input=" + URLEncoder.encode(input, "utf8"));

        URL url = new URL(sb.toString());
        conn = (HttpURLConnection) url.openConnection();
        InputStreamReader in = new InputStreamReader(conn.getInputStream());

        // Load the results into a StringBuilder
        int read;
        char[] buff = new char[1024];
        while ((read = in.read(buff)) != -1) {
            jsonResults.append(buff, 0, read);
        }
    } catch (MalformedURLException e) {
        Log.e(LOG_TAG, "Error processing Places API URL", e);
        return resultList;
    } catch (IOException e) {
        Log.e(LOG_TAG, "Error connecting to Places API", e);
        return resultList;
    } finally {
        if (conn != null) {
            conn.disconnect();
        }
    }

    try {
        // Create a JSON object hierarchy from the results
        JSONObject jsonObj = new JSONObject(jsonResults.toString());
        JSONArray predsJsonArray = jsonObj.getJSONArray("predictions");
        Log.e("result",jsonObj.toString());
        // Extract the Place descriptions from the results
        resultList = new ArrayList<String>(predsJsonArray.length());
        for (int i = 0; i < predsJsonArray.length(); i++) {
            resultList.add(predsJsonArray.getJSONObject(i).getString("description")+ "," + predsJsonArray.getJSONObject(i).getString("place_id") );
        }
    } catch (JSONException e) {
        Log.e(LOG_TAG, "Cannot process JSON results", e);
    }
    return resultList;
}

Пожалуйста помоги.


comment
Вы создали ключ API Google Places?   -  person Rishad Appat    schedule 28.07.2015
comment
Я создал ключ сервера, как уже упоминалось, карты работают нормально, за исключением этого.   -  person karan    schedule 28.07.2015
comment
пожалуйста, пришлите свой manifest.xml   -  person Pierangelo Orizio    schedule 28.07.2015
comment
@KaranMer не ключ сервера ... вам нужно создать ключ API Google Places ...   -  person Rishad Appat    schedule 28.07.2015
comment
нет такой вещи, как ключ API Google. из документов видно, что вам нужен только ключ сервера developers.google.com/places/webservice/intro   -  person karan    schedule 28.07.2015
comment
@PierangeloOrizio, проект работает нормально, и я добавляю ключ сервера непосредственно в запрос.   -  person karan    schedule 28.07.2015
comment
@pskink, можешь взглянуть на это?   -  person karan    schedule 28.07.2015


Ответы (1)


Требовалось более тщательное исследование, и после некоторых проб и ошибок это сработало. главное, мне нужно было включить веб-службу Google Places API. и это сработало как шарм.

Надеюсь, это поможет кому-то там.

person karan    schedule 28.07.2015
comment
Это правильный ответ. Поскольку вы вручную создаете HTTP-запросы и отправляете их в конечную точку веб-службы, вам необходимо включить API веб-службы. У Google также есть собственный SDK для Android, который обеспечивает автозаполнение, и на него стоит обратить внимание: developers.google.com /места/андроид - person plexer; 29.07.2015
comment
Отлично. Ты спас мой день, приятель. :) - person Rohan; 03.10.2015
comment
Хороший ответ. У меня тоже идеально работает. Только после включения веб-службы Google Places API необходимо сгенерировать ключ сервера или браузера для этого ключа, а не для Android, в этом проекте Google. - person Vindhya Pratap Singh; 29.10.2015
comment
Отлично работает. Просто дайте мне знать, что API-интерфейс geocpding также необходим? - person Lochana Ragupathy; 16.12.2015
comment
Ответ правильный, но кажется серьезным сбоем в API Google Places для мобильных устройств. - person VVB; 29.03.2016