使用Wordpress插件FAlbum的用户很多。但是最近不少朋友遭遇一个编号97的错误。一个典型的出错信息如下:
FAlbum has encounted an error while processing your request.
Flickr returned an invalid status code:
97 – Missing signatureBacktrace:
FAlbum.class.php:1524 – /home/*****/public_html/*****/wp-content/plugins/falbum/FAlbum.class.php
falbum_wp->_error()
FAlbum.class.php:1423 – /home/*****/public_html/*****/wp-content/plugins/falbum/FAlbum.class.php
falbum_wp->_parse_xpath()
FAlbum.class.php:176 – /home/*****/public_html/*****/wp-content/plugins/falbum/FAlbum.class.php
falbum_wp->_call_flickr()
FAlbum.class.php:99 – /home/*****/public_html/*****/wp-content/plugins/falbum/FAlbum.class.php
falbum_wp->show_albums()
falbum.php:29 – /home/*****/public_html/*****/wp-content/themes/k2/falbum.php
falbum_wp->show_photos()
album.php:12 – /home/*****/public_html/*****/wp-content/plugins/falbum/wp/album.php
include_once()
在Flickr官方网站给出的解释链接 。那个叫做Eric的Flickr工作人员解释说:
hub, If you are seeing 97 errors, it is likely because you passed a token but not a signature in your API call. If you pass a token, you must pass a signature also. (So, yes, your authentication is outdated in the sense that we fixed a bug that allowed for unsigned authed calls to the API to be honored, so you must update your code to follow the spec.)
大意就是,如果你遇到97错误,很可能是因为在你通过Flickr提供的开发API呼叫时,传递了一串暗号(Signature),但没有包括一个签名(Token)。也就是说,签名和暗号必须同时被传递过去。然后Eric接着解释说,Flickr刚刚修复了一个小错误,之前的认证过程允许未签名的请求认证呼叫。而现在这种方式行不通了,所以必须通过修改代码来跟进。
所以问题就很明白了。FAlbum的代码由于Flickr对于这个问题的修补而不能正常工作了。
我去FAlbum的官方论坛察看,有一个专门的帖子 反映了不少用户都遭遇了相似的问题(btw,帖子里面的drin就是我)。
我想,若是等到作者Eli来解决问题,不知道要多久了。而每天看着自己博客的照片栏目一直出错是在心理不舒服。所以就打算自己动手。研究一下,就发现其实不难解决。下面是我小补丁(需要修改代码,请做好备份工作)。
首先,打开在插件目录中falbum子目录下的FAlbum.class.php文件,寻找“function _call_flickr”,大概在第1403行左右。
寻找以下代码:
if (!empty ($this->secret)) {
$api_sig = md5(FALBUM_SECRET.$auth_sig);
}
替换为:
$secret = FALBUM_SECRET;
if (!empty ($secret) || $this->_show_private() == ‘true’ || $post == true) {
$api_sig = md5(FALBUM_SECRET.$auth_sig);
}$args = array_merge($args, array (‘api_sig’ => $api_sig));
ksort($args);
然后保存,上传覆盖原来的文件。再打开你的FAlbum页面看看?一切都正常了吧。
呵呵,祝使用愉快。

[...] 修补WP插件FAlbum,使用FAlbum插件的还是不少的,如果碰到97错误的话请看一下这篇。 [...]