Puncte:1

Cum partajez fotografii Google?

drapel eg

Aș dori ca toate albumele partajate ale unui anumit cont Google să fie automat într-un site web Drupal. Am reușit să stabilesc o conexiune cu „Google_photos_api” și să arăt toate albumele partajate de pe site cu codul de mai jos.

<?php
$GooglePhotosService = \Drupal::service('google_photos_api.client');
încerca {
  $optParams=array("pageSize" => 50);
  $SharedAlbumlijst = $GooglePhotosService->googleServicePhotosLibrary->sharedAlbums->listSharedAlbums($optParams);  
  ksm($SharedAlbumlijst);  
  echo '<div id="GooglePhotos" class="grid views-view-grid">';
  echo '<div class="row">';  
  foreach ($SharedAlbumlijst ca $album) {
    echo '<div class="col-6 col-sm-6 col-md-4 col-lg-4 col-xl-3" style="margin-bottom: 10px;">';    
    // Obține câteva proprietăți ale unui album
    $albumId = $album->getId();
    $titlu = $album->getTitle();
    $productUrl = $album->getProductUrl();
    $coverPhotoBaseUrl = $album->getCoverPhotoBaseUrl() . '=w200-h200-c';
    ecou „<h5>” . $titlu . „</h5>”;
    echo '<a href="' . $coverPhotoBaseUrl . '" id="' . $albumId . '">';
    echo '<img src="' . $coverPhotoBaseUrl . '" alt="' . $title . '">';
    ecou '</a>';
    ecou '</div>';
  }
  ecou '</div>';
}
prinde (Excepție $e) {
  ksm($e);
}

Problema pe care nu o pot înțelege este să enumerez toate elementele media dintr-un anumit album. Codul de mai jos nu funcționează. Nu știu cum să trec ID-ul albumului în asta??

<?php
$GooglePhotosService = \Drupal::service('google_photos_api.client');

încerca {
  $albumId = 'ANfpKL0unQw8nWACRpVCPj0JxmZ5JHkX_xCecI-VPFxKrFScPPfpE8HakFWvKG3KFVXNnNyigXB0';
  $optParams = ['albumId' => $albumId];
  $mediaItems = $GooglePhotosService->googleServicePhotosLibrary->mediaItems->search($optParams);

  ksm($MediaItems);
}

prinde (Excepție $e) {
  ksm($e);
}

Orice ajutor ar fi grozav!! Mulțumesc anticipat!!

Cod de eroare:
Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.
TypeError: Argumentul 1 transmis către Google_Service_PhotosLibrary_Resource_MediaItems::search() trebuie să fie o instanță a Google_Service_PhotosLibrary_SearchMediaItemsRequest, matrice dată, numită în C:\Xampp2\htdocs\Demertr\modules\contrib\contrib\(php)')php :module(php)'1. d cod pe linia 7 din Google_Service_PhotosLibrary_Resource_MediaItems->search() (linia 79 din vendor\google\apiclient-services\src\Google\Service\PhotosLibrary\Resource\MediaItems.php).

MediaItems.php

clasa Google_Service_PhotosLibrary_Resource_MediaItems extinde Google_Service_Resource {

funcția publică de căutare(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

clasa Google_Service_PhotosLibrary_SearchMediaItemsRequest extinde Google_Model {
  public $albumId;
  protected $filtersType = 'Google_Service_PhotosLibrary_Filters';
  protejat $filtersDataType = '';
  public $pageSize;
  public $pageToken;
...
berliner avatar
drapel bd
Bună și bine ați venit la Drupal Answers! Această întrebare ar putea obține mai multă atenție și răspunsuri mai bune pe https://stackoverflow.com/, deoarece nu are legătură directă cu Drupal.
Puncte:0
drapel bd

Nici nu am idee, dar uitându-mă la mesajul de eroare și la documentele de la https://google.github.io/php-photoslibrary/v1.1.0/classes/Google.Photos.Library.V1.SearchMediaItemsRequest.html (dacă aceasta este versiunea corectă), aș spune că trebuie să creați o instanță a SearchMediaItemsRequest, setați ID-ul albumului pe acel obiect și apoi treceți-l în căutare metodă. Deci, poate ceva de genul acesta bazat pe codul dvs.:

$media_request = new SearchMediaItemsRequest();
$media_request->setAlbumId($albumId);
$mediaItems = $GooglePhotosService->googleServicePhotosLibrary->mediaItems->search($media_request);
Jan Moris avatar
drapel eg
Dragă berlinez, Îți mulțumesc pentru reacție, dar încă nu-mi dau seama. Am încercat sugestia ta, dar apoi am primit o altă eroare: „Eroare: clasa „SearchMediaItemsRequest” nu a fost găsită în eval() (linia 11 a modulelor\contrib\php\php.module(81) : codul eval()).`
berliner avatar
drapel bd
Nu faceți astfel de lucruri cu ajutorul modulului PHP. Ca vreodată! Serios, nu! Este rau! Luați-vă timp pentru a afla cum funcționează Drupal, apoi creați un modul personalizat și faceți-l acolo. Există o mulțime de tutoriale care vă vor ajuta să faceți acest lucru corect.
Jan Moris avatar
drapel eg
Rulez acest cod în modul propriu, doar pentru testare folosesc modulul php. Multumesc oricum.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.