3

このコードは完全に機能します:

$f = new phpFlickr(FLICKR_API_KEY, FLICKR_API_SECRET);
$f->setToken(FLICKR_AUTH_TOKEN);
// Next line is just WordPress providing the photoset ID.
$mySetID = get_post_meta($post->ID, 'Flickr set ID', true); 
$mySet = $f->photosets_getPhotos($mySetID, NULL, NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $f->buildPhotoURL($photo, 'large') .'" alt="" /></div>';
}

...buildPhotoURL が「元の」サイズを取得するように指示されるまで、その時点で返される URL は「http://farm6.static.flickr.com/5607/5332878962__o」のようなものになります。これは明らかに有効ではありません。

私が検索で見つけたものはすべて、これを行うには Flickr 自身のドキュメントではほとんど言及されていない "originalsecret" と "originalformat" の値が必要であることに同意しているようですが、phpFlickr はそれらを試して使用しているようですが、それらは明らかに取得されていません。デフォルトでは、実際にそれらを提供する方法について誰かがコードを投稿しているのを見たことがありません。$f->photos_getInfo() を echo 行の直前に呼び出してみましたが、さまざまなものを渡しても効果がありませんでした。 phpFlickrフォーラムで繰り返される質問に対する有効な回答(私が見つけることができます)。

ノート:

  • これプロアカウントです。
  • 適切に認証しています (これらはプライベート セットであり、他のすべてのサイズで正常に機能します)。
  • Flickr のプライバシー設定の元のサイズへのアクセスは、「誰でも」に設定されています。

アイデア?

4

2 に答える 2

4

少し遅れていることは承知しており、あなたは今までに問題を理解したと確信していますが、同様の問題と格闘するのに少し時間を費やしたので、関連する回答を共有したいと思いました。件名はどこにも見つかりません。

セットから元のサイズの画像を表示するために必要な情報を取得するには、次の URL が機能するはずです。

http://api.flickr.com/services/rest/?&method=flickr.photosets.getPhotos&api_key=YOURAPIKEYNUMBER&photoset_id=YOURSETIDNUMBER&per_page=100&sort=date-posted-desc&extras=original_format&format=json&jsoncallback=?

もちろん、すべての変数はニーズに合わせてカスタマイズできますが、これは重要な「元の」秘密コードを含む元の画像フォーマット情報が添付された、日付の降順で並べ替えられたセットの最初の 100 枚の画像を示す 1 つの例にすぎません

画像を表示するには、使用できる JavaScript は次のとおりです。

'http://farm' + item.farm + '.static.flickr.com/' + item.server + '/' + item.id + '_' + item.originalsecret + '_' + 'o' + '.' + item.originalformat;

主な問題点は "&extras=original_format" です。これにより、flickr から元のサイズの画像を呼び出すために必要な originalsecret と originalformat の両方が得られるためです。元のサイズの問題に遭遇したとき、私は SuperSized バックグラウンド プラグインを使用していました。

于 2013-01-13T01:10:11.357 に答える
3

メソッドはのphotosets_getPhotos()完全な配列を返しません$photo。が必要とする、に関する$photoいくつかの基本情報を返します。$photo['originalformat']buildPhotoURL()

photosets_getPhotos()オプションのエクストラとして元の形式を返すように指示できます。これにより、必要なものがbuildPhotoURL()すべて提供されます。

例:

$mySet = $f->photosets_getPhotos($mySetID, 'original_format', NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $f->buildPhotoURL($photo, 'original') .'" alt="" /></div>';
}

さらに良いことphotosets_getPhotos()に、元の写真自体の URL を返すことができます。

例:

$mySet = $f->photosets_getPhotos($mySetID, 'url_o', NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $photo['url_o'] .'" alt="" /></div>';
}
于 2012-01-05T23:41:19.117 に答える