Unisender Api в консольном приложении

Всё что касается построения API
Ответить
trollldemiurg
Сообщения: 9
Зарегистрирован: 2017.06.20, 13:56

Unisender Api в консольном приложении

Сообщение trollldemiurg »

Доброго дня. Использую обертку для API Unisender https://github.com/OmgDef/yii2-unisender. Хотелось бы перенести контроллер в консольные приложения. С фронта API работает, ответы приходят все в порядке. Из console/controllers нет. Вот кусок контроллера:

Код: Выделить всё

namespace console\controllers;


use yii\console\Controller;
use frontend\models\Zayavki;
use omgdef\yii\unisender\UniSender;
use omgdef\unisender\UniSenderWrapper;
/**
 * Test controller
 */
class UniController extends Controller
{

    public function actionIndex()
    {
        echo "Yes, cron service is running.";
    }

    public function actionUniday()
    {
        $time_start = microtime(true);
        $zayavki = new Zayavki();
        $zay_two = $zayavki::find()->andWhere(['between','date',date("Y-m-d", strtotime("-2 day")),date("Y-m-d",strtotime("-1 day"))])->andWhere(['or','promo_bank=""','promo_bank=NULL'])->all();
        $count_zay = count($zay_two);
        $field_names = [];
            $field_names[0] = 'email';
            $field_names[1] = 'email_list_ids';
            $field_names[2] = 'email_status';

        $data = [];
        $i=0;
        foreach ($zay_two as $one) {
            $data[$i][0] = $one['email'];
            $data[$i][1] = '11765809';
            $data[$i++][2] = 'active';
        }
        
            // Unisender
            $obj = new UniSenderWrapper();
            $obj->testMode = false;
            $obj->apiKey = '00000000000000';
            $response = $obj->sendQuery('importContacts',['field_names'=>$field_names, 'data'=> $data]);
            var_dump($response);

        $time_end = microtime(true);
        echo 'Processing for ' . ($time_end - $time_start) . ' seconds';
    }
ответ не приходит (NULL). Во фронте все работает, буду благодарен за пинок в правильном направлении.
Yii 2.0.13.1 PHP 5.6.31
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Unisender Api в консольном приложении

Сообщение Nex-Otaku »

Есть вероятность, что в твоей системе не работает "curl" в консольном режиме PHP.

Проверь, если это так, то решение можно нагуглить.
trollldemiurg
Сообщения: 9
Зарегистрирован: 2017.06.20, 13:56

Re: Unisender Api в консольном приложении

Сообщение trollldemiurg »

Странно, работает. Поставил в контроллере простой вызов пришел ответ. Класс самой обертки видит. Не пойму пока
trollldemiurg
Сообщения: 9
Зарегистрирован: 2017.06.20, 13:56

Re: Unisender Api в консольном приложении

Сообщение trollldemiurg »

Nex-Otaku писал(а): 2017.12.07, 20:26 Есть вероятность, что в твоей системе не работает "curl" в консольном режиме PHP.

Проверь, если это так, то решение можно нагуглить.
не встречали случайно ссылочки, нашел только по Yii 1. немного но, входной скрипт не могу ему показать
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Unisender Api в консольном приложении

Сообщение Nex-Otaku »

Значит, данные другие передаются. Где-то опечатка или ошибка. Код простой, проверяйте, что отправляется, сравните результат с отправкой "вручную".
trollldemiurg
Сообщения: 9
Зарегистрирован: 2017.06.20, 13:56

Re: Unisender Api в консольном приложении

Сообщение trollldemiurg »

Проверил, с данными все верно. Проблема в https. На http curl посылается, на https нет. А с фронта и туда и туда отправляется
Ответить