Весь этот процесс подписки на API Instagram кажется менее прямым.
У меня есть код, настроенный для получения сообщений, отправленных, когда Instagram обращается ко мне с уведомлением о почте из одной из моих подписки. Однако, когда я пытаюсь просмотреть данные, необработанный JSON, это сообщения, которые я не могу получить. Если у меня print_r
или var_dump
я просто получаю номер 1.
Смотрите мой код для доступа к данным:
// Catches realtime updates from Instagram if ($_SERVER['REQUEST_METHOD']==='POST') { // Retrieves the POST data from Instagram $update = file_get_contents('php://input'); $data = json_decode($update); var_dump($data); //Outputs 1 print_r($data[0]); //Outputs 1 }
Как я могу получить JSON в виде массива?
Вот что должен выглядеть JSON:
[ { "subscription_id": "1", "object": "user", "object_id": "1234", "changed_aspect": "media", "time": 1297286541 }, { "subscription_id": "2", "object": "tag", "object_id": "nofilter", "changed_aspect": "media", "time": 1297286541 }, ... ]
Спасибо за любую помощь.
Обновление 1
Я использовал PHP для печати заголовков HTTP. Есть контент, потому что это шоу, это длина. Тем не менее, он не смог справиться с этим. Это исключает, что это вопрос Instagram, я думаю
Если вы используете PHP, я думаю, что самый простой способ доступа к входным данным – использовать $_GET
и $_POST
. В этом случае попробуйте var_dump($_POST)
и посмотрите, что вы получаете.
Если вы получаете некоторый контент из $_POST
, вы можете использовать json_decode
для декодирования JSON в массив.
Вы также можете попробовать некоторые PHP-реализации API Instagram, например: https://github.com/macuenca/Instagram-PHP-API. Это будет необходимо для работы.
Вуп нашел проблему и решил ее. Это непросто отлаживать, потому что все это происходит, когда Instagram нажимает вашу страницу, чтобы вы не видели результат.
То, что мне нужно было сделать, это создать цикл foreach для запуска через декодированный JSON. После много отладки и царапин на голове JSON не пуст, он начинается с массива JSON.
В любом случае вот код, который работает сейчас:
// Catches realtime updates from Instagram if ($_SERVER['REQUEST_METHOD']==='POST') { // Retrieves the POST data from Instagram $update = file_get_contents('php://input'); $data = json_decode($update); foreach($data as $k => $v) // can be multiple updates per call { $sub_id = $v->subscription_id; //Contains the JSON values $user = $v->object_id; } }
Если вы хотите видеть выходы из $ sub_id, например, я предлагаю их зарегистрировать или отправить по электронной почте вам, например.