Начало работы с клиентской библиотекой Google Data PHP

Предупреждение . Эта страница посвящена старым API Google, API данных Google; это относится только к API, которые перечислены в каталоге API данных Google , многие из которых были заменены более новыми API. Для получения информации о конкретном новом API см. документацию по новому API. Информацию об авторизации запросов с помощью более нового API см. в разделе Аутентификация и авторизация учетных записей Google .

Йохен Хартманн, команда API данных Google
Обновлено в октябре 2008 г. (первоначально написано Дэниелом Холевотом)

Введение

Клиентская библиотека Google Data PHP — это мощная коллекция классов, которые позволяют вам взаимодействовать с API данных Google . В отличие от других наших клиентских библиотек, она упакована как часть популярной Zend Framework , но ее также можно загрузить отдельно. Подобно другим нашим клиентским библиотекам, она также имеет открытый исходный код и разработана так, чтобы быть простой и эффективной, что позволяет вам быстро приступить к работе над своими проектами.

Предварительная установка

PHP может быть уже установлен на вашей машине разработки или веб-сервере, поэтому первым шагом является проверка этого факта и обеспечение того, чтобы версия PHP была достаточно новой для использования в клиентской библиотеке. Самый простой способ проверить это — поместить новый файл в доступный из Интернета каталог на вашем сервере. Введите в файл следующую информацию:

<?php phpinfo(); ?>

Затем убедитесь, что он доступен из Интернета, установив соответствующие разрешения, и перейдите к его расположению в браузере. Если PHP установлен и ваш сервер может отображать PHP-страницы, вы должны увидеть что-то похожее на скриншот ниже:

Скриншот информационной страницы php

На снимке экрана показана информационная страница PHP. На этой странице показана установленная версия PHP (в данном случае 5.2.6), а также включенные расширения (в разделе «Настройка команды») и расположение внутреннего файла конфигурации PHP (в разделе «Загруженные раздел «Файл конфигурации»). Если страница не отображается или ваша версия PHP старше 5.1.4, вам необходимо установить или обновить версию PHP. В противном случае вы можете пропустить следующий раздел и продолжить установку клиентской библиотеки PHP .

Примечание. Если у вас есть доступ к командной строке и вы планируете использовать PHP для запуска сценариев командной строки, см. раздел PHP для командной строки в этой статье.

Установка PHP

Установка немного зависит от платформы, поэтому важно следовать инструкциям для вашей конкретной платформы во время установки. Прежде чем мы углубимся в это, стоит отметить, что предустановленные пакеты, которые также включают веб-сервер Apache и базу данных MySQL вместе с PHP, приобрели популярность. Для Windows, Mac OS X и Linux есть проект XAMPP . Пользователи Mac OS X также могут использовать проект MAMP . Оба этих пакета поддерживают OpenSSL в PHP (что необходимо для взаимодействия с аутентифицированными каналами).

Если вы устанавливаете PHP, используя шаги, описанные ниже, убедитесь, что вы также установили и включили поддержку OpenSSL. Более подробную информацию об этом можно найти в разделе OpenSSL на сайте PHP. Следующие разделы посвящены тому, как установить PHP самостоятельно.

В Windows

Самый простой способ установить или обновить PHP в Windows — использовать установщик PHP, доступный на странице загрузок PHP.

  1. Выберите параметр установщика PHP (в разделе двоичных файлов Windows), соответствующий самой новой версии PHP, и разрешите ее загрузку.
  2. Откройте программу установки и следуйте инструкциям мастера установки.
  3. Когда мастер предложит вам, выберите веб-сервер, установленный в вашей системе, чтобы он настроил сервер для работы с PHP.
  4. Проверьте установку, выполнив шаги, описанные в разделе выше .

В Mac OS X

PHP включен в OS X, но перед его использованием необходимо обновить PHP до последней версии. Для обновления вы можете установить любой из нескольких бесплатных бинарных пакетов или скомпилировать его самостоятельно. Подробнее об установке в Mac OS X см. на странице документации PHP.

После установки или иной настройки OS X проверьте установку, выполнив действия, описанные в разделе, посвященном подготовке к установке, в этом документе.

В Linux

В зависимости от дистрибутива Linux может быть встроенная или простая в использовании опция установки PHP. Например, в Ubuntu вы можете либо использовать диспетчер пакетов, либо просто ввести в терминал следующее:

sudo apt-get install php5

Если в вашем дистрибутиве Linux нет пакетной установки, вы должны установить из исходного кода. Есть подробные инструкции по компиляции PHP для Apache 1.3 и компиляции PHP для Apache 2 . На PHP.net также есть инструкции для других серверов.

Установка клиентской библиотеки Google Data PHP

Теперь, когда у вас установлена ​​рабочая версия PHP, пришло время установить клиентскую библиотеку. Клиентская библиотека является частью Zend Framework с открытым исходным кодом, но ее также можно загрузить в виде отдельной версии . Если у вас уже установлена ​​версия Zend Framework (версия 1.6 или выше), вы можете пропустить установку, так как включена клиентская библиотека данных Google. Тем не менее, убедитесь, что вы используете последнюю версию фреймворка, чтобы гарантировать наличие всех новейших функций и исправлений ошибок, поэтому обычно это рекомендуется.

Скачав полную платформу, вы получите доступ не только к клиентской библиотеке данных Google, но и к остальной части платформы. Сама клиентская библиотека использует несколько других классов, которые являются частью полной Zend Framework, но нет необходимости загружать всю структуру, поскольку мы включили их в отдельную загрузку.

  1. Загрузите файлы клиентской библиотеки данных Google . (Поищите на этой странице «API данных Google».)
  2. Распаковать загруженные файлы. Необходимо создать четыре подкаталога:
    • demos — Примеры приложений
    • documentation — Документация по файлам клиентской библиотеки.
    • library — фактические исходные файлы клиентской библиотеки.
    • tests — файлы модульных тестов для автоматизированного тестирования.
  3. Добавьте расположение папки library к вашему пути PHP (см. следующий раздел )

Проверка наличия доступа к файлам клиентской библиотеки

Последний шаг — убедиться, что вы можете ссылаться и включать файлы клиентской библиотеки PHP из каталога, в котором вы создаете свой проект. Это достигается установкой переменной include_path в файле конфигурации PHP ( php.ini ). Переменная include_path содержит номер каталога, который PHP просматривает, когда вы выполняете оператор require или include , который извлекает внешние классы, библиотеки или файлы в ваш текущий скрипт, подобно оператору import в Java. Вам нужно добавить расположение файлов клиентской библиотеки к тому, что уже было установлено в вашем include_path . Это можно сделать двумя способами (оба подробно описаны ниже):

  • Постоянно установите директиву include_path в файле конфигурации php.ini из командной строки — требуется доступ к оболочке и права на запись.
  • Установите переменную пути include_path на уровне «для каждого каталога» — требуется веб-сервер Apache и возможность создавать файлы .htaccess .
  • Используйте set_include_path() для динамической установки пути включения в ваших сценариях — его можно установить динамически в каждом из ваших файлов .php.

Если у вас есть доступ к оболочке и права на запись в файл php.ini (или если вы пишете код на своем локальном компьютере), просто следуйте инструкциям в приложении A. Если вы используете веб-сервер Apache и имеете возможность создавать файлы .htaccess , вы можете установить переменную include_path на уровне «для каждого каталога», что означает, что все файлы в каталоге, в котором вы работаете, автоматически могут для ссылки на каталог клиентской библиотеки.

Вы можете указать параметры конфигурации PHP, как показано во фрагменте ниже:

# This works for PHP5 in both Apache versions 1 and 2
<IfModule mod_php5.c>
  php_value include_path        ".:/usr/local/lib/php:/path/to/ZendGdata/library"
</IfModule>

Примечание. Дополнительные сведения об изменении параметров конфигурации см. в Руководстве по PHP .

Если у вас нет доступа к вашему серверу через оболочку и вы не можете изменять или создавать файлы .htaccess, вы всегда можете использовать функцию set_include_path . Обратите внимание, что у вас уже могут быть заданы некоторые значения для вашего include_path , поэтому может быть хорошей идеей следовать приведенной ниже модели, чтобы добавить новые значения, вместо того, чтобы перезаписывать весь путь:

$clientLibraryPath = '/path/to/ZendGdata/library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);

Примечание. Пожалуйста, обратитесь к справочным страницам PHP для получения более подробной информации о функции set_include_path .

Запуск проверки установки PHP

Чтобы убедиться, что ваш путь включения установлен правильно, вы можете запустить скрипт проверки установки PHP. Просто скопируйте и вставьте содержимое этого файла в новый файл в доступном через Интернет каталоге на вашем сервере и перейдите к нему из браузера. Если вы видите результат, аналогичный приведенному ниже, значит, все настроено правильно и вы готовы использовать клиентскую библиотеку PHP:

Скриншот выходных данных проверки установки php

Если вы видите ошибки (как на скриншоте ниже), убедитесь, что вы следуете направлению. Возможно, вам не хватает расширений, или ваш путь все еще может быть установлен неправильно. Помните, что вам может потребоваться перезагрузить сервер, чтобы изменения вступили в силу. Это применимо только в том случае, если вы действительно изменяете файл php.ini . На приведенном ниже снимке экрана показано, что для include_path установлено значение /path/to/nowhere :

Скриншот выходных данных проверки установки php

Примечание. Обратите внимание, что средство проверки установки PHP последовательно проверяет следующее: (1) установлены ли необходимые расширения PHP, (2) указывает ли include_path на каталог клиентской библиотеки PHP, (3) могут ли быть установлены соединения SSL и наконец, можно ли подключиться к API данных YouTube . Если какой-то конкретный тест не пройден, остальные тесты выполняться не будут.

Теперь, когда клиентская библиотека установлена, пришло время попробовать запустить примеры.

Запуск образцов

В корне каталога Zend/Gdata находится папка demos — примеров, которые помогут вам начать работу. Некоторые из этих примеров предназначены для запуска из командной строки , например demos/Zend/Gdata/Blogger.php и demos/Zend/Gdata/Spreadsheet-ClientLogin.php , и вы можете выполнить их с помощью php /path/to/example . . Остальные примеры можно запускать как из командной строки, так и из веб-браузера. Если вы хотите просмотреть их в браузере, их следует поместить в любой каталог, который вы будете использовать для обслуживания веб-страниц. Эти примеры должны дать общее представление о том, как писать и запускать приложение Google Data, но если вы готовы к большему, для любознательного программиста есть и другие ресурсы.

Примечание. Если вы заинтересованы в просмотре веб-демонстраций в Интернете, посетите сайт googlecodesamples.com и найдите приложения PHP.

Где узнать больше

Лучшим местом для поиска информации о классах, являющихся частью клиентской библиотеки, является справочное руководство по API на сайте Zend Framework. Обязательно выберите пакет Zend_Gdata из раскрывающегося списка.

На этом этапе вы должны быть готовы начать кодирование. Итак, продолжайте, напишите несколько отличных приложений. Мы с нетерпением ждем ваших результатов!

Вы можете найти руководства для разработчиков PHP для следующих сервисов:

Поскольку клиентская библиотека PHP является проектом с открытым исходным кодом, постоянно добавляется поддержка дополнительных API. У каждой службы есть собственная группа поддержки. Список доступных групп поддержки см. в разделе часто задаваемых вопросов .

Если вам нужна помощь в устранении неполадок с вызовами API, доступны статьи об отладке запросов API с помощью инструментов захвата сетевого трафика и об использовании прокси-серверов с API данных Google . Также доступно несколько внешних статей об установке XAMPP в Linux и об установке XAMPP в Windows . В дополнение ко всем этим статьям обязательно ознакомьтесь с сообщениями о клиентской библиотеке PHP в блоге Google Data API Tips .

Приложение A: Редактирование пути PHP в файле конфигурации php.ini

Путь PHP — это переменная, содержащая список местоположений, которые PHP ищет при поиске дополнительных библиотек во время загрузки. Чтобы PHP мог загружать и получать доступ к файлам клиентской библиотеки Google Data PHP на вашем компьютере или сервере, их необходимо поместить в место, известное PHP. Или, в качестве альтернативы, расположение файлов должно быть добавлено к вашему пути PHP. Обратите внимание, что изменения в файле php.ini обычно требуют перезагрузки сервера. Вы всегда можете проверить текущее значение переменной include_path , перейдя на страницу информации о PHP, о которой говорилось ранее . Найдите ячейку « Загруженный файл конфигурации» в первой таблице и найдите путь в столбце справа.

Примечание. Если вы обнаружите, что используете php из командной строки, вам может потребоваться изменить дополнительную переменную пути. Обязательно ознакомьтесь с Приложением B: Использование PHP из командной строки .

Найдя файл php.ini , выполните следующие действия, чтобы добавить его к пути.

  1. Откройте файл php.ini в вашем любимом текстовом редакторе.
  2. Найдите строку, указывающую на путь PHP, она должна начинаться с include_path .
  3. Добавьте путь, по которому вы сохранили Zend Framework, к списку уже имеющихся местоположений, добавив перед новым путем разделитель, назначенный для вашей ОС ( : в Unix-подобных системах, ; в Windows). Правильный путь в Unix-подобных системах будет выглядеть примерно так:
    /path1:/path2:/usr/local/lib/php/library
    В Windows он будет выглядеть примерно так:
    \path1;\path2;\php\library
  4. Сохраните и закройте файл.

Примечание. В Mac OS X Finder не разрешает доступ к файлам, которые находятся в системных папках, таких как каталог /etc . Поэтому проще всего редактировать их с помощью редактора командной строки, такого как vi или pico . Для этого используйте такую ​​команду, как: pico /path/to/php.ini .

Приложение B: Использование PHP из командной строки

Начиная с PHP версии 5, в PHP доступна утилита командной строки, которая называется CLI для «интерпретатора командной строки». Использование этой утилиты позволяет запускать php-скрипты из командной строки. Это может быть полезно в ситуациях, когда вы запускаете PHP локально на своем компьютере и ищете способы быстрого тестирования некоторых скриптов. Конечно, на вашем сервере для этого потребуется доступ к оболочке. Важно отметить, что PHP обычно использует два отдельных файла php.ini , один из которых содержит параметры конфигурации для PHP, работающего на вашем сервере, а другой — для конфигураций, которые PHP использует при запуске из командной строки. Если вы заинтересованы в запуске демонстрационных приложений командной строки из клиентской библиотеки, вам также потребуется изменить файл командной строки php.ini .

Чтобы найти его, введите следующие команды в Unix-подобных системах (Mac OS X, Linux и других):

php -i | grep php.ini

Эта команда должна привести к отображению следующей информации в вашем терминале:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Примечание. Конечно, фактические пути ( /etc/php... ) могут отличаться в вашей системе.

Приложение C: Советы и решения

Этот раздел содержит краткое описание некоторых проблем, обнаруженных разработчиками при работе с PHP, и соответствующих решений.

Проблема с расширением dom-xml в XAMPP

Клиентская библиотека PHP использует классы DOMDocument для преобразования XML-запросов и ответов в объекты PHP. Расширение dom-xml может вызвать проблемы с обработкой XML и привести к некорректным преобразованиям. Некоторые из наших разработчиков обнаружили, что при использовании XAMPP конструктор DOMDocument переопределяется более старым вызовом функции, как описано на сайте PHP . Чтобы устранить эту проблему, убедитесь, что обработка XML не перезаписана в вашем файле php.ini . Обязательно удалите ссылки на php_domxml.dll из файла конфигурации.

Время ожидания запросов истекает при использовании клиентской библиотеки

Если вы используете клиентскую библиотеку для выполнения довольно больших запросов, таких как загрузка видео в API данных YouTube , вам может потребоваться изменить параметр timeout -аута в вашем классе Zend_Http_Client . Это можно легко сделать, передав параметр $config во время создания экземпляра, который устанавливает значение времени timeout , отличное от 10-секундного значения по умолчанию:

// assuming your Zend_Http_Client already exists as $httpClient
// and that you want to change the timeout from the 10 second default to 30 seconds

$config = array('timeout' => 30);
$httpClient->setConfig($config);

Некоторые хостинг-провайдеры не разрешают https-соединения со своих серверов.

Мы слышали, что некоторые хостинг-провайдеры не позволяют вам устанавливать https -соединения со своих серверов по умолчанию. Если вы получаете сообщение об ошибке, похожее на приведенное ниже, вам может потребоваться установить https-подключение через защищенный прокси-сервер:

Unable to Connect to sslv2://www.google.com:443. Error #110: Connection timed out

Ваш хостинг-провайдер должен иметь информацию о фактическом адресе используемого прокси-сервера. В приведенном ниже фрагменте показано, как пользовательскую конфигурацию прокси можно использовать с клиентской библиотекой PHP:

// Load the proxy adapter class in addition to the other required classes
Zend_Loader::loadClass('Zend_Http_Client_Adapter_Proxy');

// Configure the proxy connection with your hostname and portnumber
$config = array(
    'adapter'    => 'Zend_Http_Client_Adapter_Proxy',
    'proxy_host' => 'your.proxy.server.net',
    'proxy_port' => 3128
);

// A simple https request would be an attempt to authenticate via ClientLogin
$proxiedHttpClient = new Zend_Http_Client('http://www.google.com:443', $config);

$username = 'foo@example.com';
$password = 'barbaz';

// The service name would depend on what API you are interacting with, here
// we are using the Google DocumentsList Data API
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;

// Try to perform the ClientLogin authentication using our proxy client.
// If there is an error, we exit since it doesn't make sense to go on.
try {

  // Note that we are creating another Zend_Http_Client
  // by passing our proxied client into the constructor.

  $httpClient = Zend_Gdata_ClientLogin::getHttpClient(
      $username, $password, $service, $proxiedHttpClient);

} catch (Zend_Gdata_App_HttpException $httpException) {

  // You may want to handle this differently in your application
  exit("An error occurred trying to connect to the proxy server\n" .
      $httpException->getMessage() . "\n");

}

лист регистраций изменений

1 октября 2008 г.

Обновлено Йохеном Хартманном. Это обновление содержит следующие изменения:

  • Конфигурация PHP для веб-серверов стала более понятной благодаря перемещению разделов, относящихся к командной строке PHP, в приложение.
  • Добавлено примечание о нескольких файлах конфигурации php.ini.
  • Добавлены разделы о том, как динамически устанавливать include_path.
  • Добавлен раздел о скрипте проверки установки.
  • Добавлена ​​ссылка на онлайн-образцы.
  • Добавлены ссылки для XAMPP и MAMP.
  • Добавлено приложение «Советы и решения».