Почему я получаю сообщение об ошибке «Для этой службы требуется ключ API»?

Я пытаюсь отправить запрос в API мест Google, используя следующий код PHP, но получаю ошибку

string (141) «{» error_message «:» Для этой службы требуется ключ API. «,
«html_attributions»: [], «results»: [], «status»: «REQUEST_DENIED»} «

<?php
include_once 'configuration.php';

$url = 'https://maps.googleapis.com/maps/api/place/textsearch/json';
$data = array('query' => 'restaurants in Sydney', 'key' => API_KEY);

$options = array(
'http' => array(
'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
'method'  => 'POST',
'content' => http_build_query($data)
)
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }

var_dump($result);

В чем проблема ?

0

Решение

Как описано в документация текстового поиска, параметр должен быть в методе GET. Вы поставили это как ПОЧТА.

A Text Search request is an HTTP URL of the following form:

https://maps.googleapis.com/maps/api/place/textsearch/output?parameters

...

Certain parameters are required to initiate a search request. As is standard in URLs, all parameters are separated using the ampersand (&) character.

Попробуйте этот фрагмент вместо:

<?php
include_once 'configuration.php';

$url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=' . urlencode('restaurants in Sydney') . '&key=' . API_KEY;

$result = file_get_contents($url);
if ($result === FALSE) { /* Handle error */ }

var_dump($result);

Чтобы использовать параметр массива, измените $url чтобы:

$data = array('query' => 'restaurants in Sydney', 'key' => API_KEY);
$url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?' . http_build_query($data);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]