Подписка API Yii и Instagram в реальном времени

Я пытаюсь добавить подписку с API Instagram в реальном времени, устанавливая callback_url на страницу, управляемую Yii (1.1.16), и каждый раз, когда API вызывает эту страницу, он получает ошибку сервера (500). В логе апача получаю следующее:

173.252.114.111 - - [14/Jun/2015:10:09:35 +0000] "GET /site/instagram?hub.verify_token=mytoken&hub.challenge=XXX&hub.mode=subscribe HTTP/1.1" 500 341 "-" "Python-httplib2/0.8 (gzip)"

Когда я меняю callback_url на php-страницу без Yii (www.mydomain.com/instagram.php), она работает без проблем.

173.252.114.111 - - [14/Jun/2015:09:53:08 +0000] "GET /instagram.php?hub.verify_token=mytoken&hub.challenge=XXX&hub.mode=subscribe HTTP/1.1" 200 200 "-" "Python-httplib2/0.8 (gzip)"

Код, который я использую в контроллере:

public function actionInstagram()
{
    $this->layout = false;
    echo $_GET["hub_challenge"];
    Yii::app()->end();
}

Кто-нибудь знает, почему Yii выдает эту ошибку?


person nilsburg    schedule 14.06.2015    source источник
comment
показать, как выглядят правила вашего контроллера, поможет   -  person Developerium    schedule 15.06.2015
comment
Нет никаких добавленных правил, только SiteController, расширенный из CController с двумя методами: actionIndex() и actionInstagram().   -  person nilsburg    schedule 15.06.2015


Ответы (1)


Хорошо, я узнал, что происходит. Похоже, что API Instagram RealTime использует python httplib2 и не отправляет некоторые заголовки запросов, такие как HTTP_ACCEPT_LANGUAGE, и у меня было расширение, которое пыталось получить $_SERVER['HTTP_ACCEPT_LANGUAGE'], поэтому php выдавал неопределенную ошибку индекса.

Виноват!

person nilsburg    schedule 15.06.2015