За последние 24 часа нас посетили 17432 программиста и 1724 робота. Сейчас ищут 954 программиста ...

zend, gmail, calendar, sms

Тема в разделе "PHP для новичков", создана пользователем vikrorpert, 4 ноя 2013.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    был рабочий скрипт, который через zend классы добавлял события в гугл календарь
    вдруг перестало работать, зашел в профиль и обнаружил кучу сообщений Попытка входа из приложения или с устройства заблокирована

    сама ошибка скрипта
    Uncaught exception 'Zend_Gdata_App_AuthException' with message 'Authentication with Google failed. Reason: BadAuthentication'

    решил погуглить, но ничего по теме найти не смог
    вот класс, который я где то нарыл в какой то статье
    Код (Text):
    1. require_once 'Zend/Loader.php';
    2.  
    3. Zend_Loader::loadClass('Zend_Gdata');
    4. Zend_Loader::loadClass('Zend_Gdata_AuthSub');
    5. Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    6. Zend_Loader::loadClass('Zend_Gdata_Calendar');
    7.  
    8.  
    9. class GCAlerter {
    10.    
    11.     public $gcCalendar;
    12.     public $gcTimeCorrect;
    13.  
    14.     public function __construct($time) {
    15.         $client = Zend_Gdata_ClientLogin::getHttpClient('логин@gmail.com', 'пароль', Zend_Gdata_Calendar::AUTH_SERVICE_NAME);
    16.         $this->gcCalendar = new Zend_Gdata_Calendar($client);
    17.         $this->gcTimeCorrect = $time * 60;
    18.     }
    19.  
    20.     public function alert($text) {
    21.         $quickAddText = "$text ".date("H:i",time() + $this->gcTimeCorrect);
    22.         $event = $this->gcCalendar->newEventEntry();
    23.         $event->content = $this->gcCalendar->newContent($quickAddText);
    24.         $event->quickAdd = $this->gcCalendar->newQuickAdd('true');
    25.         $newEvent = $this->gcCalendar->insertEvent($event);
    26.  
    27.         $this->setReminder($newEvent);
    28.         return $newEvent->id->text;
    29.     }
    30.  
    31.     public function setReminder($event, $minutes=1) {
    32.         $method = "sms";
    33.         $times = $event->when;
    34.  
    35.         foreach ($times as $when) {
    36.             $reminder = $this->gcCalendar->newReminder();
    37.             $reminder->setMinutes($minutes);
    38.             $reminder->setMethod($method);
    39.  
    40.             $when->setReminders(array($reminder));
    41.         }
    42.  
    43.         $eventNew = $event->save();
    44.         return $eventNew;
    45.     }
    46.  
    47. }
    какие будут идеи?
    если менять то на что?
     
  2. noganno

    noganno Новичок

    С нами с:
    26 авг 2013
    Сообщения:
    58
    Симпатии:
    0
    Код (Text):
    1. $client = Zend_Gdata_ClientLogin::getHttpClient('логин@gmail.com', 'пароль', Zend_Gdata_Calendar::AUTH_SERVICE_NAME);
    а ты уверен что здесь все доступы правильно ввел?
    Если уверен, то советую зайти в API Google и посмотреть, может они поменяли вид аутентификации
     
  3. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    доступы конечно же правильные
    с доступом я смотрел но ничего не понимаю
    вроде гугл дает отлуп левым приложениям, которые пытаются логинится а как отключить- не нахожу