【问题标题】:Flickr API - phpFlickr - Display private pictures with photosets_getPhotos()Flickr API - phpFlickr - 使用 photosets_getPhotos() 显示私人图片
【发布时间】:2013-09-03 09:04:19
【问题描述】:

我想在页面上显示 Flickr 私人图片。

我的目录中有 3 个文件:

  • phpFlickr.php(类)
  • start.php(授权脚本)
  • flickr.php(显示图片)

这里是start.php的内容:

<?php
session_start();
require_once('phpFlickr.php');
$flickr = new phpFlickr('myapikey','myapisecret', true);
if(empty($_GET['frob'])) {
    $flickr->auth('read');
}
else {
    $flickr->auth_getToken($_GET['frob']);
    header('Location: flickr.php');
    exit();
}
?>

这是 flickr.php 的内容:

<?
require_once('phpFlickr.php');
$flickr = new phpFlickr('myapikey','myapisecret', true);
$f->enableCache("fs", "cache");
$photos = $f->photosets_getPhotos('myPhotoAlbumIdWithPrivatePicturesInIt', 5);
foreach ($photos['photoset']['photo'] as $photo): ?>
<img src="<?= $f->buildPhotoURL($photo, 'square') ?>" /><br />
<? endforeach; ?>

这是我收到的错误消息:

“Flickr API 返回以下错误:#1 - Photoset not found”

但是当我使用 :http://www.flickr.com/services/api/explore/flickr.photosets.getPhotos 时,我得到了结果。照片集存在。

丹·库尔特写道:

"*将应用验证到您的帐户以显示您的私人照片:

无论谁查看您的网站,此方法都允许您让应用对一个特定帐户进行身份验证。这对于显示私人照片或照片集(以及其他内容)很有用。

注意:下面的方法有点难理解,所以我设置了一个工具来帮助你:

http://www.phpflickr.com/tools/auth/.

首先,您必须使用 Flickr 设置回调脚本。完成后,编辑包含的 getToken.php 文件的第 12 行,以反映应用程序需要哪些权限。然后浏览到页面。一旦您使用 Flickr 授权该应用程序,它就会将您发送回该页面,该页面将为您提供一个类似于以下内容的令牌:

1234-567890abcdef1234

转到您正在创建 phpFlickr 实例的文件(我建议使用包含文件)并在创建后设置要使用的令牌:

$f->setToken("[token string]");

此令牌永不过期,因此您不必担心必须定期登录。*"


因此,我认为我遇到了身份验证问题。这可以解释照片集“不存在”。

但我哪里错了?

有没有办法让它在 1 个脚本而不是 2 个脚本中变得更简单?

提前感谢您的帮助。

【问题讨论】:

    标签: php oauth token flickr phpflickr


    【解决方案1】:

    嘿,差不多 2 年前我自己... 无论如何。

    我在提出问题后不久找到了解决方案,但从未发布过回复。我认为对其他人来说可能很有趣,即使迟到了:

    所以,很确定有一些更聪明的方法可以做,但我没有找到。我找到了做我需要的“方法”。

    我需要制作一个包含私人照片库的私人网页。

    <?php
    require_once("phpFlickr.php");
    $f = new phpFlickr('myapikey','myapisecret');
    $f->enableCache("fs", "cache");
    
    //This is what I really missed: the token number.
    $f->setToken('myratherlongtoken-number');
    //Dan Coulter explains it in the documentation of phpFlickr
    //He also provides a tool to ask a token.
    
    $username="My Username";
    $result = $f->people_findByUsername($username);
    $nsid = $result["id"];
    ?>
    
    //After, you can display infos of your private album (knowing its ID)
    //Such as primary photoset image, total number of photos...
    <?php $infos = $f->photosets_getInfo('12345MyAlbumId67890'); ?>
    
    //Or even process a loop to display a gallery
    <?php $photos = $f->photosets_getPhotos('12345MyAlbumId67890','','5');
    foreach ($photos['photoset']['photo'] as $photo): ?>
    

    【讨论】:

    • 首先在获取令牌时遇到问题...不确定在 flickr 上设置什么重定向...我在 getToken 上得到一个无限循环
    • 嘿@BostonMacOSX,似乎是:phpflickr.com/tools/auth。现在是 404。我知道这没有帮助,但这就是我获得静态令牌的方式......我现在不知道该怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多