Привет ребята,
Я использую Google API Zend и мне нужно перечислить все документы определенных учетных записей. Проблема в том, что при вызове метода getDocumentListFeed если постоянная учетная запись службы Google отключена, она выдает мне исключение (код 401). И я не хочу этого. Я хотел бы попробовать раньше, если служба работает, но я не могу найти способ дать мне информацию?
Docs.php
const AUTH_SERVICE_NAME = ‘writely’;
Мой класс
protected function GetAllDocumetsOneCollab
( $UidToWork
, $PasswordGet
) {
try {
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME ;
$client =
Zend_Gdata_ClientLogin::getHttpClient
( $UidToWork.
"@".$this -> DomainToUsed
, $PasswordGet
, $service
) ;
} catch (Zend_Gdata_App_AuthException $e) {
throw new Exception
( "[".__LINE__."] ".__FILE__.
$this -> CrLn.
$this -> Space.$this -> Space.$this -> Space.$this -> Space.$this -> Space.
$UidToWork." // ".$PasswordGet.
$this -> CrLn.
$this -> Space.$this -> Space.$this -> Space.$this -> Space.$this -> Space.
$this -> DepileErrorCatch ($e)
) ;
return null ;
}
try {
$docs = new Zend_Gdata_Docs ($client);
} catch (Zend_Gdata_App_AuthException $e) {
throw new Exception
( "[".__LINE__."] ".__FILE__.
$this -> CrLn.
$this -> Space.$this -> Space.$this -> Space.$this -> Space.$this -> Space.
$this -> DepileErrorCatch ($e)
) ;
return null ;
}
$AllDocument = array () ;
try {
$feed = $docs -> getDocumentListFeed () ;
foreach ($feed -> entries as $entry) {
$link = $entry -> getLink () ;
$Title = $entry -> getTitle () ;
$AllDocument [count ($AllDocument)] =
array ( 'title' => utf8_decode ("".$Title)
) ;
}
} catch (Zend_Gdata_App_HttpException $e) {
throw new Exception
( "[".__LINE__."] ".__FILE__.
$this -> CrLn.
$this -> Space.$this -> Space.$this -> Space.$this -> Space.$this -> Space.
$this -> DepileErrorCatch ($e)
) ;
return null ;
}
return $AllDocument ;
}
Я хотел бы проверить прямо перед этим, если служба включена так:
$IsEnable = $docs -> ServiceEnable () ;
if ($IsEnable)
$feed = $docs -> getDocumentListFeed () ;
else
$feed = array () ;
Сообщение об исключении:
Ожидаемый код ответа 200, получил 401
Служба отключена администратором Служб Google.
Ошибка 401
Я не знаю, может ли один метод или свойство API дать мне информацию?
Спасибо всем и извините за мой плохой английский 🙂
На данный момент я сделал это так, даже если мне не нравится это решение
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME ;
$AllDocument = array () ;
try {
$feed = $docs -> getDocumentListFeed () ;
foreach ($feed -> entries as $entry) {
$link = $entry -> getLink () ;
$Title = $entry -> getTitle () ;
$AllDocument [count ($AllDocument)] =
array ( 'title' => utf8_decode ("".$Title)
) ;
}
} catch (Zend_Gdata_App_HttpException $e) {
$Response = $e -> getResponse() ;
$MsgError = $Response -> getMessage() ;
$MsgErrorAccept = "Service <".$service."> disabled by" ;
if (!strstr($MsgError, $MsgErrorAccept)) {
throw new Exception
( "[".__LINE__."] ".__FILE__.
$this -> CrLn.
$this -> Space.$this -> Space.$this -> Space.$this -> Space.$this -> Space.
$this -> DepileErrorCatch ($e)
) ;
return null ;
}
}
return $AllDocument ;
Других решений пока нет …