Score:1

ฉันจะแชร์รูปภาพ Google ได้อย่างไร

ธง eg

ฉันต้องการให้อัลบั้มที่แชร์ทั้งหมดของบัญชี Google หนึ่งๆ เข้าสู่เว็บไซต์ Drupal โดยอัตโนมัติ ฉันสามารถสร้างการเชื่อมต่อกับ 'Google_photos_api' และแสดงอัลบั้มที่แชร์ทั้งหมดบนไซต์ด้วยรหัสด้านล่าง

<?php
$GooglePhotosService = \Drupal::service('google_photos_api.client');
พยายาม {
  $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 เป็น $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 = $album->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>';
}
catch (ยกเว้น $e) {
  ksm($อี);
}

ปัญหาที่ฉันคิดไม่ออกคือการแสดงรายการสื่อทั้งหมดของอัลบั้มที่กำหนด รหัสด้านล่างไม่ทำงาน ฉันไม่รู้ว่าจะส่ง ID อัลบั้มเข้าไปได้อย่างไร??

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

พยายาม {
  $albumId = 'ANfpKL0unQw8nWACRpVCPj0JxmZ5JHkX_xCecI-VPFxKrFScPPfpE8HakFWvKG3KFVXNnNyigXB0';
  $optParams = ['albumId' => $albumId];
  $mediaItems = $GooglePhotosService->googleServicePhotosLibrary->mediaItems->ค้นหา($optParams);

  ksm($สื่อรายการ);
}

catch (ยกเว้น $e) {
  ksm($อี);
}

ความช่วยเหลือใด ๆ จะดีมาก !! ขอบคุณล่วงหน้า!!

รหัสข้อผิดพลาด:
เว็บไซต์พบข้อผิดพลาดที่ไม่คาดคิด กรุณาลองใหม่อีกครั้งในภายหลัง.
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);
    ส่งคืน $this->call('ค้นหา', [$params], 'Google_Service_PhotosLibrary_SearchMediaItemsResponse');
  }
}
SearchMediaItemsRequest.php

คลาส Google_Service_PhotosLibrary_SearchMediaItemsRequest ขยาย Google_Model {
  $albumId สาธารณะ;
  ป้องกัน $filtersType = 'Google_Service_PhotosLibrary_Filters';
  ป้องกัน $filtersDataType = '';
  สาธารณะ $pageSize;
  สาธารณะ $pageToken;
...
berliner avatar
bd flag
สวัสดีและยินดีต้อนรับสู่ Drupal Answers! คำถามนี้อาจได้รับความสนใจมากขึ้นและได้คำตอบที่ดีกว่าใน https://stackoverflow.com/ เนื่องจากไม่เกี่ยวข้องกับ Drupal โดยตรง
Score:0
ธง bd

ไม่มีความคิดจริงๆ แต่ดูที่ข้อความแสดงข้อผิดพลาดและเอกสารที่ https://google.github.io/php-photoslibrary/v1.1.0/classes/Google.Photos.Library.V1.SearchMediaItemsRequest.html (หากเป็นเวอร์ชันที่ถูกต้อง) ฉันจะบอกว่าคุณต้องสร้างอินสแตนซ์ของ ค้นหารายการสื่อคำขอให้ตั้งค่ารหัสอัลบั้มบนวัตถุนั้นแล้วส่งผ่านไปยัง ค้นหา กระบวนการ. ดังนั้นอาจเป็นสิ่งนี้ตามรหัสของคุณ:

$media_request = ใหม่ SearchMediaItemsRequest();
$media_request->setAlbumId($albumId);
$mediaItems = $GooglePhotosService->googleServicePhotosLibrary->mediaItems->ค้นหา($media_request);
Jan Moris avatar
eg flag
เรียน เบอร์ลินเนอร์ ขอบคุณสำหรับปฏิกิริยาของคุณ แต่ฉันก็ยังคิดไม่ออก ฉันลองใช้คำแนะนำของคุณแล้ว แต่ฉันได้รับข้อผิดพลาดอื่น: `ข้อผิดพลาด: ไม่พบคลาส 'SearchMediaItemsRequest' ใน eval() (บรรทัดที่ 11 ของ modules\contrib\php\php.module(81) : eval()'d code)`
berliner avatar
bd flag
อย่าทำสิ่งนี้ด้วยความช่วยเหลือของโมดูล PHP เช่นเคย! จริง ๆ อย่า! มันไม่ดี! ใช้เวลาแทนเพื่อเรียนรู้วิธีการทำงานของ Drupal จากนั้นสร้างโมดูลแบบกำหนดเองและดำเนินการที่นั่น มีแบบฝึกหัดมากมายที่จะช่วยให้คุณทำสิ่งนี้ได้อย่างถูกต้อง
Jan Moris avatar
eg flag
ฉันเรียกใช้โค้ดนี้ในโมดูลของตัวเอง สำหรับการทดสอบเท่านั้น ฉันใช้โมดูล php แต่อย่างไรก็ตามขอบคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา