【问题标题】:php picasa api show large imagephp picasa api 显示大图
【发布时间】:2012-05-15 00:09:40
【问题描述】:

好的,到目前为止,我已经能够使用谷歌提要显示来自用户/相册的缩略图。一切都显示正常,除非我想显示更大的缩略图。我似乎无法显示大图像,不知道在这里使用什么..这是我的代码:

<?php
$user = '100483307985144997386';
$albumid = '5092093264124561713';
$picasaURL = "http://picasaweb.google.com/$user/";
$albumfeedURL = "http://picasaweb.google.com/data/feed/api/user/$user/albumid/$albumid";

$sxml_album = simplexml_load_file($albumfeedURL);
echo '<table cellpadding="3" cellspacing="3">';
echo "<tr>";
$i = 0;
foreach( $sxml_album->entry as $album_photo )
{   

   //$title = $album_photo->title;
    $summary = $album_photo->summary;
    // Write thumbnail to file
    $media = $album_photo->children('http://search.yahoo.com/mrss/');
    $thumbnail = $media->group->thumbnail[1];

    $gphoto = $album_photo->children('http://schemas.google.com/photos/2007/');
    $linkName = $gphoto->group->attributes()->{'url'};    
    // Direct address to thumbnail
    $thumbAddy = $thumbnail->attributes()->{'url'};    
    if($i%4==0) { echo '</tr><tr>'; } 

    echo '<td style="width:90px; overflow:hidden; word-wrap:break-word; font-size:12px;">';
    echo '<a class="fancybox-buttons" data-fancybox-group="button" href="'. $linkName . '"><img src="'. $thumbAddy . '" /></a>';         
    echo '<p>'. $summary . '</p></td>';
    $i++; 
}

echo '</tr></table>';

【问题讨论】:

    标签: php image api feed picasa


    【解决方案1】:

    每张照片的提要/api 包含 3 个拇指和一张大图片,可通过以下原生 http rest api 访问:

    "media$thumbnail":[
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/s72/DSC01612.JPG",
    "height":72,
    "width":48
    },
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/s144/DSC01612.JPG",
    "height":144,
    "width":96
    },
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/s288/DSC01612.JPG",
    "height":288,
    "width":192
    }
    ],
    
    LARGE ONE:
    
    "media$group":{
    "media$content":[
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/DSC01612.JPG",
    "height":512,
    "width":341,
    "type":"image/jpeg",
    "medium":"image"
    } 
    

    similar reference

    在将客户端编码到底层 REST api 时,通常有助于很好地掌握本机协议以及在线上的字符流(请求/响应)。然后将 PHP/Curl 调整为 http 协议中的内容。

    google oauth playground 是一个很好的工具,可以针对任何 gdata api(包括 picasa)测试开发中涉及的来回对话...

    playground

    这是获得给定专辑/照片的拇指和大图的游乐场请求代码...

    GET //data/entry/api/user/rowntreerob/albumid/5682316071017984417/photoid/5682316083381958690?fields=media%3Agroup%2Fmedia%3Athumbnail%5B%40url%5D%2Cmedia%3Agroup%2Fmedia%3Acontent%5B%40url%5D&alt=json HTTP/1.1
    
    
    Host: picasaweb.google.com
    Authorization: OAuth ya29.AHES6ZT123y3Y5Cy3rILYg4Ah4q....
    HTTP/1.1 200 OK
    status: 200
    gdata-version: 1.0
    content-length: 756
    x-xss-protection: 1; mode=block
    content-location: https://picasaweb.google.com//data/entry/api/user/rowntreerob/albumid/5682316071017984417/photoid/5682316083381958690?fields=media%3Agroup%2Fmedia%3Athumbnail%5B%40url%5D%2Cmedia%3Agroup%2Fmedia%3Acontent%5B%40url%5D&alt=json
    x-content-type-options: nosniff
    set-cookie: _rtok=a1p2m3PiHFkc; Path=/; Secure; HttpOnly, S=photos_html=sX3EHuLxGEre_OMvR0LTPg; Domain=.google.com; Path=/; Secure; HttpOnly
    expires: Wed, 16 May 2012 03:23:51 GMT
    vary: Accept, X-GData-Authorization, GData-Version, Cookie
    x-google-cache-control: remote-fetch
    -content-encoding: gzip
    server: GSE
    last-modified: Fri, 06 Jan 2012 17:57:33 GMT
    via: HTTP/1.1 GWA
    cache-control: private, max-age=0, must-revalidate, no-transform
    date: Wed, 16 May 2012 03:23:51 GMT
    access-control-allow-origin: *
    content-type: application/json; charset=UTF-8
    x-frame-options: SAMEORIGIN
    

    对上述内容的响应通过漂亮的打印...

    "version":"1.0",
    "encoding":"UTF-8",
    "entry":{
    "xmlns":"http://www.w3.org/2005/Atom",
    "xmlns$media":"http://search.yahoo.com/mrss/",
    "media$group":{
    "media$content":[
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/DSC01612.JPG",
    "height":512,
    "width":341,
    "type":"image/jpeg",
    "medium":"image"
    }
    ],
    "media$thumbnail":[
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/s72/DSC01612.JPG",
    "height":72,
    "width":48
    },
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/s144/DSC01612.JPG",
    "height":144,
    "width":96
    },
    {
    "url":"https://lh3.googleusercontent.com/-_FFMNGPU1TQ/TtukXyN4eCI/AAAAAAAACso/EzPmut2iKVQ/s288/DSC01612.JPG",
    "height":288,
    "width":192
    

    【讨论】:

    • 谢谢,它在某种程度上清除了它。因此,按照您的解释,我这样做了: $linkName = $media->group->content->attributes()->{'url'};我得到的图像比缩略图大,虽然不相信它是绝对真实的全尺寸图像,但我现在对它很满意。如果我错了,请告诉我。
    • 一般来说,您需要了解数据模式、如何使用 xsl 表示法引用实体和属性,以及您的语言 (PHP) 的详细信息。我无法提供 php 详细信息,但是您想要从提要中获取的 xsl 字段是 media:group/media:content[@url]。我在猜测,但看起来你有正确的.. 其他链接:developers.google.com/picasa-web/docs/2.0/…javadoc.google-api-java-client.googlecode.com/hg/1.0.10-alpha/…
    • 谢谢,有时我们希望答案只是交给我们以避免花时间阅读一点;)但这确实有帮助,老实说,我做了很多试验和错误..lol,但使用您的信息。
    【解决方案2】:

    您可以使用 imgmax 参数指定大小(imgmax=d 表示原始图像)。 https://developers.google.com/picasa-web/docs/2.0/reference#Parameters

    【讨论】:

      【解决方案3】:

      您是否尝试过 print_r( $album_photo ) 来检查对象的确切格式及其包含的内容?

      我很确定您可以在该 API 中指定许多其他参数来访问不同大小的图片和缩略图。检查文档。

      我不久前使用 json-script 格式访问过这个 API,从内存中你可以指定很多选项。

      【讨论】:

      • 好的,我明白了:[content] => SimpleXMLElement Object ([@attributes] => Array ([type] => image/jpeg [src] => lh5.ggpht.com/-MugLOHdTwDE/Rqq_5TtNyUI/AAAAAAAAALA/i9xx6XtiZFc/…))但不完全确定如何使用它:S
      • 那个链接是大图。使用 curl 或其他任何方法来获取它,你就有了大照片
      • 谢谢,我能够弄清楚如何以及从何处获取网址,但这绝对有帮助。
      【解决方案4】:

      我搜索了整个互联网,试图找到这个问题的答案。没有人真正回答这个问题。为了将来参考其他阅读者或我未来的自己,以获得大图像,请执行以下操作:

      echo $album_photo->content->attributes()->{'src'};
      

      那是 WAAAAYY 比它应该的更复杂,普通的 XML 用户可能已经知道如何做到这一点。 :/

      【讨论】:

        猜你喜欢
        • 2012-07-29
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 2011-12-17
        • 2015-08-24
        • 1970-01-01
        • 2015-08-09
        • 2011-05-18
        相关资源
        最近更新 更多