Intereting Posts
Аутентификация против ldap с использованием PHP, активного каталога при использовании IE / Firefox Есть ли предел как max_input_vars в версиях до 5.3.9? Загрузите файл через PHP-скрипт с FTP-сервера в браузер с заголовком Content-Length без сохранения файла на веб-сервере PHP: невозможно присвоить значение переменной переменной phpDocumentor – «Является ли phpdoc в пути или include_path в вашем файле php.ini?» Mysql удаляет истекшие задания из базы данных Проверка ссылки с хоста с php Общая ссылка, которая откроет мое приложение или магазин приложений. Bootstrap Отзывчивый редактор WYSWIG не отправляет входные данные в php как мне помещать цикл в таблицу html? Вызовите еще один PHP-скрипт и верните элемент управления пользователю до завершения другого скрипта Связь между php memory_limit, upload_max_filesize и post_max_filesize Результаты поиска Mysql для похожих звуков Как вы конвертируете аудиофайлы (на лету) в браузер? Проблема SED (linux) с рекурсивным

Помощь в использовании JSON для API

Я действительно не понимаю, как должен работать этот API, поскольку я никогда раньше не работал с JSON.

Документация не дает никаких примеров, но в ней говорится, что конечные точки в этом API поддерживают операции POST и GET, возвращая JSON.

Мой вопрос в том, что я точно не знаю, как это реализовать, допустим, я просто хочу вывести все данные на простую страницу, такую ​​как:

Город: Салем

Почтовый индекс: 97302

и т.д…

Я не совсем уверен, с чего начать:

POST http: // [ваше имя хоста RepMan] /api/v1/account/reputation/current.json

GET http: // [ваше имя хоста RepMan] /api/v1/account/reputation/current.json

Ниже приведен список аргументов для тела POST или строки запроса GET. Все значения должны быть правильно закодированы в соответствии с обычной строкой POST или строкой запроса GET.

| Field | Ordinality | Datatype | Description | pid | 1 | string | This is your partner ID as provided by us to access the API. | apiKey | 1 | string | This is your API Key as provided by use to access the API. | srid | ? | string | This is the unique RepMan ID for the account. Either this or customerId must be specified. | customerId | ? | string | This is your unique customer id for the account. Either this or srid must be specified. 

Для ответа 200 вы получите следующее содержимое JSON:

 { account : { srid : "DW5SRB36", lastName : "Morimoto", pid : "SRP", customerId : null, firstName : "Masaharu" }, company : { city : "New York", postalZip : "10011", provState : "NY", name : "Morimoto", address : "88 10th Ave" }, visibility : { found : 18, missing : 9 }, reviews : { 1star : 5, 4star : 37, 3star : 44, 5star : 66, 2star : 5 }, competition : { Restaurants in New York : { Megu : 1.82, Morimoto: 52.95, Matsuri : 18.13, Buddakan: 0.93, Nobu : 26.17 } }, social : { checkins : 5015, twitter_followers : 8154, facebook_likes : 1134 }, mentions : { 07-09-2011 : { positive : 0, neutral : 0, negative : 0 }, 07-07-2011: { positive : 2, neutral : 3, negative : 0 }, 07-05-2011: { positive : 1, neutral : 2, negative : 0 }, 07-11-2011: { positive : 2, neutral : 2, negative : 0 }, 07-06-2011: { positive : 5, neutral : 2, negative : 0 }, 07-10-2011: { positive : 3, neutral : 4, negative : 0 }, 07-08-2011: { positive : 1, neutral : 5, negative : 0 } } } } 

Первое, что нужно попробовать, – экспериментировать с несколькими запросами в вашем веб-браузере. Оттуда должно быть довольно ясно, что вам нужно делать.

Начните с вашего базового URL:

 http://[your RepMan hostname]/api/v1/account/reputation/current.json 

Очевидно, вам придется подключить ваше имя хоста вместо [your RepMan hostname] . Оттуда добавим строку запроса. Вы видели их раньше … они приходят после вопросительного знака ? в URL-адресе и содержать пары ключ / значение в форме key1=value1&key2=value2 . У вас есть 4 переменных для плагина: pid , apiKey , srid и customerId . Не зная, что делает этот веб-сервис, трудно помочь вам узнать, какие значения включить, но вот пример:

 http://example.com/api/v1/account/reputation/current.json?pid=12345&apiKey=asdf&srid=34&customerid=98765 

Создайте вручную рабочий URL с нужными параметрами и попробуйте в своем браузере. Как только вы это сделаете, вы увидите, что какая-то текстовая структура возвращается в формате JSON . Это текст, совместимый с парсерами JavaScript, но на самом деле он отделен от JavaScript.

Теперь, как вы это делаете в PHP? Быстрый способ – использовать file_get_contents() и json_decode() .

 $response = file_get_contents('plug your URL in here'); $responseObject = json_decode($response); print_r($responseObject); 

В принципе, file_get_contents() будет загружать данные по этому URL-адресу, а json_decode() примет текстовое представление объекта и превратит его в настоящий объект PHP. Оттуда вы можете сделать echo $responseObject->social->checkins или аналогичный.

Теперь вы должны изучить использование cURL вместо file_get_contents() . Это даст вам больше контроля над запросом и даст вам более легкий доступ к кодам статуса ответа. Это будет важно, когда вы захотите установить ограничение по времени для этого запроса позже или вам придется обрабатывать сбои. Кроме того, убедитесь, что вы используете urlencode() или http_build_query() для построения строки запроса. Таким образом, зарезервированные символы, такие как пробелы, будут преобразованы в их закодированную форму, например, %20 .

URL-адрес описывает объект:

http: // [ваше имя пользователя RepMan] /api/v1/account/reputation/current.json – Текущая репутация пользователей .

Используя HTTP GET, вы можете получить (получить) данные об объекте.

Используя HTTP POST, вы можете отправлять (публиковать) данные в api об объекте (обновлять или создавать новый объект).

Для этого просто используйте curl, как описано во многих других местах, таких как: php: Получить содержимое URL (json) с помощью cURL

Это похоже на веб-сервис на основе REST. Существует два метода HTTP, которые API говорит, что вы можете использовать:

  • ПОЛУЧИТЬ
  • ПОСЛЕ

Запросы GET находятся в URL-адресе, который может быть вызван, например, из веб-браузера, например:

 http://host//api/v1/account/reputation/current.json?pid={some partner ID}&nextkey={next value}... 

Значок вопроса (?) Указывает начало списка параметров. Амперсанд (&) разделяет параметры. Параметры: key = value formatted.

Запросы POST используют один и тот же URL-адрес, но вместо параметров вы собираете контент:

 http://host//api/v1/account/reputation/current.json 

Затем установите HTTP-заголовок « content-type » как « application/json ». Затем установите HTTP-заголовок « accept » как « application/json ».

Затем, используя некоторое программное обеспечение (HTTP-клиент Apache и т. Д.), Выполните сборку и POST форматированное сообщение JSON как:

 { pid: "my partner ID" ... } 

Рекомендации:

http://en.wikipedia.org/wiki/Query_string

http://en.wikipedia.org/wiki/JSON

В чем разница между HTTP-Get и HTTP-POST и почему HTTP-POST слабее с точки зрения безопасности