Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2014, 16:28   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Google AdWords api

Добрый день, возникла проблема со взаимодействием с клиентской библиотекой для работы с апи adwords
получаю следующую ошибку AuthenticationError.GOOGLE_ACCOUNT_ COOKIE_INVALID при попытке вызвать ManagedCustomerService

код класса:
Код:
require_once($dir.'/googleAdwords/Lib/AdWordsUser.php');
require_once ($dir.'/Common/Util/OAuth2Handler.php');
class alGoogleAdwords extends AdWordsUser{

    protected $ver;

    public function __construct(){
        $authData = json_decode($_SESSION['ad_token']);

        parent::__construct(NULL,NULL,NULL,DEVELOPER_TOKEN,NULL,NULL,NULL,NULL,$authData->access_token,$this->object_to_array($authData));
        $this->ver = 'v201309';
        $this->LogAll();

    }

    public function getAuthUrl(){
        $OAuth2Handler = $this->GetOAuth2Handler();
        $authURL = $OAuth2Handler->GetAuthorizationUrl($this->GetOAuth2Info(),AD_REDIRECT_URI,TRUE);
        return $authURL;
    }

    public function getRefreshToken($OAuth2AdWordsCode = NULL){
        if(isset($OAuth2AdWordsCode)){
            $OAuth2Handler = $this->GetOAuth2Handler();
            $this->SetOAuth2Info($OAuth2Handler->GetAccessToken($this->GetOAuth2Info(),$OAuth2AdWordsCode,AD_REDIRECT_URI));
            return $this->GetOAuth2Info();
        }else{
            return NULL;
        }
    }

    public function getClientInfo(){
        $ManagedCustomerService = $this->GetService('ManagedCustomerService',$this->ver);
        $ADSelector = new Selector();
        $ADSelector->fields = array('Login','CustomerId','Name');
        $ADGraph = $ManagedCustomerService->get($ADSelector);
        print_r($ADGraph);
    }
    function object_to_array($data)
    {
        if (is_array($data) || is_object($data))
        {
            $result = array();
            foreach ($data as $key => $value)
            {
                $result[$key] =$this-> object_to_array($value);
            }
            return $result;
        }
        return $data;
    }
}
а в $_SESSION['ad_token'] следующая информация:
Код:
{"client_id":"ид приложения","client_secret":"пароль,"access_token":"ya29.1.AADtN_UQuNmt1G4VGfyFis0dL8iVKx-iP-hzKWxas7rcLVWQbqFRiHbzLtGl_bDMjv3WdQ","token_type":"Bearer","expires_in":3599,"timestamp":1390995885}
)
собственно вопрос, почему по коду возвращаемому из oauth я могу послать запрос на авторизация и получения access_token, а при запросе на получение какой-либо информации из adwords я получаю ошибку.

auth.ini - не использую, передаю параметры непосредственно в конструктор объекта
AdWordsUser
CodeNOT вне форума Ответить с цитированием
Старый 29.01.2014, 17:49   #2
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Или кто вообще работал с апи адвордс? Может подскажите что я не так делаю
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
google Adwords CodeNOT PHP 0 10.01.2014 16:08