Я пытаюсь использовать AdWords API от Google в приложении cakePHP. Мне нужно найти ключевые слова в какой-то момент внутри уже существующей модели, которую я сделал.
Идея состоит в том, чтобы получить информацию о ключевом слове, если я еще не получил его в моей базе данных. Но когда мне нужно использовать некоторые классы AdWords, я получаю такую ошибку:
Error: Class 'TargetingIdeaSelector' not found
File: C:\wamp64\www\projet\app\Model\Keyword.phpLine: 36
Вот представление о коде, который у меня есть:
public function getsuggestions($word, $someData) {
if (!empty($word) && $word != '') {
$data = $this->find('all', array(
'conditions' => array('Keyword.mot_saisi' => $word)
));
if (!empty($data)) {
$motcles = split(",",$data['0']['Keyword']['result'],11);
$motcles['10'] = $word;
return $motcles;
}
else {
// Create selector.
$selector = new TargetingIdeaSelector(); //Here is the error
$selector->requestType = 'IDEAS';
$selector->ideaType = 'KEYWORD';
$selector->requestedAttributeTypes = array('KEYWORD_TEXT',
'SEARCH_VOLUME',
'CATEGORY_PRODUCTS_AND_SERVICES');
// Create language search parameter (optional).
// The ID can be found in the documentation:
//
https://developers.google.com/adwords/api/docs/appendix/languagecodes
// Note: As of v201302, only a single language parameter is
allowed.
$languageParameter = new LanguageSearchParameter();
$french = new Language();
$french->id = 1002;
$languageParameter->languages = array($french);
// Create related to query search parameter.
$relatedToQuerySearchParameter = new
RelatedToQuerySearchParameter();
$relatedToQuerySearchParameter->setQueries(array($word));
$selector->searchParameters[] =
$relatedToQuerySearchParameter;
$selector->searchParameters[] = $languageParameter;
// Set selector paging (required by this service).
$paging = new Paging();
$paging->setStartIndex(0);
$paging->setNumberResults(10);
$selector->setPaging($paging);
// Make the get request.
$content = $targetingIdeaService->get($selector);
[...]
Я предполагаю, что классы adWords не включены в мою модель, но как я могу включить весь контент AdWords, чтобы использовать несколько классов в моей модели?
(У меня есть googleads-php-lib прямо внутри моего проекта)
РЕДАКТИРОВАТЬ
Вот точное решение:
require_once __DIR__ . '../../Vendor/autoload.php';
use Google\AdsApi\AdWords\v201710\o\TargetingIdeaSelector;
use Google\AdsApi\AdWords\v201710\o\LanguageSearchParameter;
use Google\AdsApi\AdWords\v201710\o\RelatedToQuerySearchParameter;
use Google\AdsApi\AdWords\v201710\cm\Language;
use Google\AdsApi\AdWords\v201710\cm\Paging;






(I have googleads-php-lib directly inside my project)
Вам нужно указать автозагрузчику, где его найти, и использовать инструкцию use внутри вашего файла.
Привет, спасибо за ответ. Я снова работал над этим, но не могу понять, как мне это написать. Я добавил: требуется DIR. '/../vendor/autoload.php'; используйте googleads_php_lib_14_0_0 \ src \ Google \ Api \ Ads \ AdWords \ v201605 \ TargetingIdeaService, потому что мне нужна функция TargetingIdeaSelector, которая находится внутри php-файла TargetingIdeaService. Но похоже, что это не работает, класс TargetingIdeaSelector все еще неизвестен моему классу. Я просматриваю ссылки, которыми вы поделились, но все равно не могу понять. Я пропустил шаг?