簡體   English   中英

Flickr API-phpFlickr-使用photosets_getPhotos()顯示私人圖片

[英]Flickr API - phpFlickr - Display private pictures with photosets_getPhotos()

我想在頁面上顯示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-未找到照片集”

但是當我使用: 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]");

該令牌永不過期,因此您不必擔心必須定期登錄。*“


因此,我認為我存在身份驗證問題。 這將解釋照片集“不存在”。

但是我在哪里錯了?

有沒有一種方法可以使腳本更簡單,而不是2?

預先感謝您的幫助。

嘿,差不多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): ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM