Ошибка при использовании API поиска фотографий Flickr: Неверный ключ API (ключ имеет неверный формат) - PullRequest
0 голосов
/ 18 февраля 2020

В моем приложении я делаю некоторую работу по созданию строки запроса для вызова через Flickr API, результат примерно такой:

https://api.flickr.com/services/rest/?format=json&api_key={MY API KEY}&method=flickr.photos.search&tags=happy%2Cdog

Однако запрос в браузере работает нормально, запрос того же запроса с помощью curl возвращает ошибку:

jsonFlickrApi({"stat":"fail","code":100,"message":"Invalid API Key (Key has invalid format)"})

Вот мой код curl:

$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL, $this->query);
$result = curl_exec($ch);
curl_close($ch);

1 Ответ

1 голос
/ 18 февраля 2020

Если это работает, когда URL, сгенерированный вашей системой, копируется и вставляется в браузер, тогда что-то должно отличаться.

Ваш отладочный вывод, вероятно, интерпретируется как HTML, поэтому, если есть ошибочный & где-то там вместо &, он все еще выглядит как &, а также копируется и вставляется как &.

htmlspecialchars всегда полезно в случаях вот так, чтобы увидеть реальное значение, а не то, как его интерпретировал браузер.

...