【问题标题】:Using the Flickr API how can I get back the absolute path to an image?使用 Flickr API 如何获取图像的绝对路径?
【发布时间】:2013-09-16 21:15:16
【问题描述】:

好的,这不仅是获取图像 URL 的方法,还不止于此,我继续解释,试图尽可能清楚,我可能会指出我是这方面的新手,我是一名 PHP 初级程序员,这是我第一次使用 Flickr:

我有一个在线的 PHP 网站,我已经完成了所有与 Key、Secret、Token 等相关的事情。所以基本上我有一个工作正常的公共图像上传器。你可以进入我的网站挑选一张图片并将它们上传到我的 Flickr 帐户。

现在,他们做这件事的 PHP 基本上就是这个:

$apiKey = "(my API Key)";
$apiSecret = "(my API Secret)";
$permissions  = "write";
$token        = "(my Token)";

$f = new phpFlickr($apiKey, $apiSecret, true);
$f->setToken($token);
$f->sync_upload($path, $title);
return $f;

phpFlickr 对象来自 Flickr API,在这种情况下,$f 将返回一个包含图片 ID 和一些其他数据的数组。

如何以 www.flickr.com/something/myPicture.jpg 的形式获取刚刚上传的图片的绝对路径以构建 HTML 标记?

可能 $f 给我的还不够。任何对此的了解都会很棒!

希望很清楚。

【问题讨论】:

    标签: php html image api flickr


    【解决方案1】:

    在我开始写作之前,先看看这些链接。他们可能有你要找的东西:

    http://www.flickr.com/services/api/misc.urls.html

    http://www.flickr.com/services/api/flickr.photos.getInfo.html

    如果您尝试构建照片的绝对路径,则必须根据您从成功的 API 调用中获得的信息构建整个路径,该 API 调用将位于 $f 中。查看我发布的第一个链接,鉴于您拥有所需的所有信息,有几种方法可以为图片构建绝对路径。第一种方法是构建照片源URL,格式如下:

    http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg

    http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}_[mstzb].jpg

    http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{o-secret}_o.(jpg|gif|png)

    可以在我上面发布的对 photos.getInfo API 调用的成功调用中找到构建这些链接所需的信息。构建绝对路径就像将所有变量组合在一起一样简单:

    (好久没接触PHP了,多多包涵)

    my $link = 'http://farm' . $farmid . '.staticflickr.com/' . $serverid . '/' . $id . '_' . $secret . '.jpg';

    第二种方法是构建网页URL。这可以直接从 photos.getinfo API 调用中获取,也可以在您拥有用户 ID 和/或照片 ID 的情况下手动构建。如果您有所需的信息,则构建链接的方式与我上面的方式几乎相同。查看我发布的第一个链接,了解您需要构建的实际 URL。

    我要提到的最后一件事是,您应该确保您的 API 调用正常工作。当我第一次学习如何使用 API 时,我浪费了很多时间,因为我从未检查过 API 调用返回的输出或我的身份验证不正确。执行 vardump($f)(或类似的操作)并查看调用返回的内容可能有助于您了解需要做什么才能获得所需的信息。

    【讨论】:

    • 你的回答很棒,当然它有我需要的一切。感谢那。但是,这可能更像是一个 PHP 问题:我应该如何在我的 PHP 中使用 flickr.photos.getInfo?对不起,如果我的问题太新手了,但如果你能发布一个 PHP 块,这将对我有很大帮助,只需一行,不用担心语法不是最好的。
    • 看来您已经想通了,但您是问我如何进行 API 调用,或者如何使用 PHP 从结果中检索信息?
    • 我猜这是两者的结合。我也不确定PHP。我的记忆力和我的业余爱好者……没有帮助。但是,由于您的回答,现在我很清楚了。谢谢!
    【解决方案2】:

    好的,我刚刚找到了方法。如果有人感兴趣:

    $f = new phpFlickr($apiKey, $apiSecret, true);
    $f->photos_getInfo(PHOTO_ID);
    

    这将为您返回一个包含完成 URL 所需的所有内容的数组。

    【讨论】:

    • 但这对我来说是输出“数组”吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 2019-07-29
    • 2021-02-09
    相关资源
    最近更新 更多