使用php向flickr自动上传图片

发布: 2013-07-16 09:58

1、选择api
phpFlickr,这个包支持php4/php5。与phlickr这个要新些全面些。
这个库想比phlickr更合适,但是也有些老,像没有像oauth这些功能。

2、创建 flickr app 的key
http://www.flickr.com/services/

3、配置与认证登陆

[code type="php" name="flickr.php"]

// 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();
}
[/code]

这里需要注意的是,会有认证过程会有浏览器跳转,不能纯命令行模式执行该程序。
在获取到token后,可取到token放在命令行执行。
首先执行,$_SESSION['phpFlickr_auth_token'] = '12345674612259315-b717abcdefgggggg';
再使用$flickr->auth('write');的时候就无浏览器跳转了,进入非交互模式了状态了。
但目前还不清楚这个token能使用多长时间。

4、上传图片
认证通过后,可使用$flickr->sync_upload('/path/to/anyimage.jpg');
这个调用的返回值为图片的ID,一个大数字。
程序可记录这个图片ID,访问图片。

5、图片归类
flickr有图片集的概念,也就是图片分类,
可以使用相关的api把上传后的图片放到不同的分类中。


原文: http://qtchina.tk/?q=node/736

Powered by zexport