首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flickr phpFlickr -用photosets_getPhotos()显示私人图片

Flickr phpFlickr -用photosets_getPhotos()显示私人图片
EN

Stack Overflow用户
提问于 2013-09-03 09:04:19
回答 1查看 2.9K关注 0票数 0

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

  • 我有个API +秘密。
  • 我使用丹·库尔特的phpFlickr类:http://phpflickr.com
  • 我开始了大卫沃尔什的文章:http://davidwalsh.name/flickr-php
  • 我将API键的回调URL设置为:http://mydomain.com/mydirectory/flickr.php

我的目录中有3个文件:

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

以下是start.php的内容:

代码语言:javascript
复制
<?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的内容:

代码语言:javascript
复制
<?
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返回了以下错误:#1 -没有找到Photoset”

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

丹·库尔特写道:

“*验证该应用程序到您的帐户,以显示您的私人图片:

这种方法将允许您的应用程序认证到一个特定的帐户,无论谁查看您的网站。这对于显示私人照片或照片集(除其他外)非常有用。

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

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

首先,您必须使用Flickr设置一个回调脚本。完成之后,编辑包含的getToken.php文件的第12行,以反映应用程序所需的权限。然后浏览到页面。一旦你用Flickr授权了这个应用程序,它就会把你送回那个页面,它会给你一个像这样的标记:

代码语言:javascript
复制
1234-567890abcdef1234

转到要创建phpFlickr实例的文件(我建议使用包含文件),在创建该文件之后,将令牌设置为使用:

代码语言:javascript
复制
$f->setToken("[token string]");

这个令牌永远不会过期,所以您不必担心必须定期登录。“

因此,我想我有一个认证问题。这就解释了光集“不存在”。

但我哪里错了?

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

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-01 21:14:22

差不多两年前我自己..。不管怎么说。

问完问题后不久,我找到了一个解决办法,但从来没有发过答案。我认为对其他人来说,即使晚了也会很有趣:

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

我需要用私人照片制作一个私人网页。

代码语言:javascript
复制
<?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): ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18588171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档