Я хотел бы, чтобы все общие альбомы определенной учетной записи Google автоматически попадали на веб-сайт Drupal.
Мне удалось установить соединение с «Google_photos_api» и показать все общие альбомы на сайте с помощью кода ниже.
<?php
$GooglePhotosService = \Drupal::service('google_photos_api.client');
пытаться {
$optParams=массив("pageSize" => 50);
$SharedAlbumlijst = $GooglePhotosService->googleServicePhotosLibrary->sharedAlbums->listSharedAlbums($optParams);
ksm($SharedAlbumlijst);
echo '<div id="GooglePhotos" class="grid views-view-grid">';
эхо '<div class="row">';
foreach ($SharedAlbumlijst как $album) {
echo '<div class="col-6 col-sm-6 col-md-4 col-lg-4 col-xl-3" style="margin-bottom: 10px;">';
// Получить некоторые свойства альбома
$albumId = $album->getId();
$title = $альбом->getTitle();
$productUrl = $album->getProductUrl();
$coverPhotoBaseUrl = $album->getCoverPhotoBaseUrl() . '=w200-h200-c';
эхо '<h5>' . $название . '</h5>';
echo '<a href="' . $coverPhotoBaseUrl . '" id="' . $albumId . '">';
echo '<img src="' . $coverPhotoBaseUrl . '" alt="' . $title . '">';
эхо '</a>';
эхо '</div>';
}
эхо '</div>';
}
поймать (исключение $e) {
ксм($е);
}
Проблема, которую я не могу понять, состоит в том, чтобы перечислить все медиа-элементы данного альбома. Код ниже не работает. Я не знаю, как передать в это ID альбома ??
<?php
$GooglePhotosService = \Drupal::service('google_photos_api.client');
пытаться {
$albumId = 'ANfpKL0unQw8nWACRpVCPj0JxmZ5JHkX_xCecI-VPFxKrFScPPfpE8HakFWvKG3KFVXNnNyigXB0';
$optParams = ['albumId' => $albumId];
$mediaItems = $GooglePhotosService->googleServicePhotosLibrary->mediaItems->search($optParams);
ксм($МедиаЭлементы);
}
поймать (исключение $e) {
ксм($е);
}
Любая помощь будет здорово!
Заранее спасибо!!
Код ошибки:
Сайт обнаружил непредвиденную ошибку. Пожалуйста, повторите попытку позже.
TypeError: Аргумент 1, переданный в Google_Service_PhotosLibrary_Resource_MediaItems::search(), должен быть экземпляром Google_Service_PhotosLibrary_SearchMediaItemsRequest, массивом, вызываемым в C:\Xampp2\htdocs\Demertr\modules\contrib\php\php.module(81): eval()' d в строке 7 в Google_Service_PhotosLibrary_Resource_MediaItems->search() (строка 79 файла vendor\google\apiclient-services\src\Google\Service\PhotosLibrary\Resource\MediaItems.php).
MediaItems.php
класс Google_Service_PhotosLibrary_Resource_MediaItems расширяет Google_Service_Resource {
общедоступная функция поиска (Google_Service_PhotosLibrary_SearchMediaItemsRequest $postBody, $optParams = []) {
$params = ['postBody' => $postBody];
$params = array_merge($params, $optParams);
return $this->call('search', [$params], 'Google_Service_PhotosLibrary_SearchMediaItemsResponse');
}
}
SearchMediaItemsRequest.php
класс Google_Service_PhotosLibrary_SearchMediaItemsRequest расширяет Google_Model {
публичный $albumId;
защищенный $filtersType = 'Google_Service_PhotosLibrary_Filters';
защищенный $filtersDataType = '';
публичный $pageSize;
общедоступный $pageToken;
...