开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

使用 PHP 将照片上传到 Flickr

感谢 Instagram,我对将照片上传到不同的服务有点着迷。 Instagram 的 iPhone 应用程序允许我拍照并快速过滤它们;照片修补完成后,我可以将照片上传到 Instagram、Twitter、Facebook 和 Flickr。这个过程让我想知道使用 PHP 将照片上传到 Flickr 需要什么。这篇文章详细介绍了如何使用 PHP 和 phpFlickr 验证照片并将照片上传到 Flickr。

第 1 步:Flickr 应用程序密钥创建

与所有其他 API 用法一样,您需要前往 Flickr 注册一个 API 密钥。将一个好的描述和标题放在一起,但一个关键是您将回调/重定向 URL 设置为示例页面(或者至少我这样做了)。

第 2 步:获取 phpFlickr

phpFlickr 是 Fl​​ickr 推荐的 PHP 库。该库并不完美(似乎存在一些长期存在的重定向问题),但它作为一个通用的 Flickr API 接口做得很好。

第三步:配置和认证

看代码最容易理解流程:

// Start the session since phpFlickr uses it but does not start it itself
session_start();

// Require the phpFlickr API
require_once('phpFlickr-3.1/phpFlickr.php');

// Create new phpFlickr object: new phpFlickr('[API Key]','[API Secret]')
$flickr = new phpFlickr('[API KEY]','[API SECRET]', true);

// Authenticate;  need the "IF" statement or an infinite redirect will occur
if(empty($_GET['frob'])) {
	$flickr->auth('write'); // redirects if none; write access to upload a photo
}
else {
	// Get the FROB token, refresh the page;  without a refresh, there will be "Invalid FROB" error
	$flickr->auth_getToken($_GET['frob']);
	header('Location: flickr.php');
	exit();
}

在启动会话并需要 phpFlickr API 库后,需要创建一个 phpFlickr 实例,为其提供 API 密钥和 API 秘密。创建实例后,将使用 if 语句对来自 Flickr 的 frob 参数作出反应。如果未提供 frob,则应调用 auth 方法,该方法要么确认身份验证,要么将用户重定向到 Flickr 站点以进行登录。如果 frob 已提供,已设置身份验证令牌并且需要刷新页面(我不确定为什么需要进行重定向,但这是确保身份验证正常工作)

第四步:上传文件

实际上,使用 phpFlickr 将图像上传到 Flickr 比进行身份验证要容易得多。上传文件就像一个函数调用一样简单:

// Send an image sync_upload(photo, title, desc, tags)
// The returned value is an ID which represents the photo
$result = $flickr->sync_upload('logo.png', $_POST['title'], $_POST['description'], 'david walsh, php, mootools, dojo, javascript, css');

sync_upload 方法允许的参数很多,但图像、标题、描述和标签是最突出的。还有一个 async_upload 也可以使用。

phpFlickr 还允许简单的读取访问,因此您可以创建照片、标签等的幻灯片,所以不要认为 phpFlickr 只是用于上传!

由于需要 OpenAuth,我第一次尝试创建独立的 PHP/Flickr 脚本失败了。 phpFlickr 在管理整个过程方面做得很好,文档也很适合入门。我遇到了一些“重定向过多”(由我添加的“if”语句修复)和“无效 frob”错误(由附加重定向解决)错误的问题,但除此之外,phpFlickr 是正确的选择!

未经允许不得转载:我爱分享网 » 使用 PHP 将照片上传到 Flickr

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏