【发布时间】:2013-09-03 09:04:19
【问题描述】:
我想在页面上显示 Flickr 私人图片。
- 我有一个 API + 秘密。
- 我使用 Dan Coulter 的 phpFlickr 类:http://phpflickr.com
- 我从 David Walsh 开始了一些事情:http://davidwalsh.name/flickr-php
- 我将 API 密钥的回调 URL 设置为:http://mydomain.com/mydirectory/flickr.php
我的目录中有 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