Author: pierre.andrews@gmail.com
Date: Wed Aug 2 17:04:08 2006
New Revision: 4371
Log:
attention, je dois encore tester cela. Verifier que le token est encore valide avant de continuer les operations.
Modified:
_plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php
_plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php
_plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php
Modified: _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php
--- _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php Wed Aug 2 17:04:08 2006
@@ -27,8 +27,9 @@
$rez = spip_abstract_select($select,$from,$where);
$row = spip_abstract_fetch($rez);
if($row['flickr_nsid'] != '' && $row['flickr_token'] != '') {
+ $check = flickr_auth_checkToken($row['flickr_token']);
+ if($check) {
$page = _request('page')?_request('page'):1;
- //TODO: ajouter des options de recherches
$sort = _request('sort')?_request('sort'):'date-posted-desc';
$photos = flickr_photos_search(40,$page,$row['flickr_nsid'],'','',_request('text_search'),'','','','','',$sort,'','',$row['flickr_token']);
@@ -103,7 +104,12 @@
echo '</select>';
echo '<button type="submit">'._T('fpipr:recherche').'</button>';
echo '</form>';
-
+ } else {
+ include_spip('base/abstract_sql');
+ global $table_prefix;
+ spip_query("UPDATE ".$table_prefix."_auteurs SET flickr_nsid = '', flickr_token = '' WHERE id_auteur=$connect_id_auteur");
+ echo _T('fpipr:demande_authentification',array('url'=>generer_url_ecrire('auteurs_edit','id_auteur='.$connect_id_auteur)));
+ }
} else {
echo _T('fpipr:demande_authentification',array('url'=>generer_url_ecrire('auteurs_edit','id_auteur='.$connect_id_auteur)));
}
Modified: _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php
--- _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php Wed Aug 2 17:04:08 2006
@@ -27,6 +27,8 @@
$where = array('id_auteur='.$connect_id_auteur);
$row = spip_abstract_fetsel($select,$from,$where);
if($row['flickr_nsid'] != '' && $row['flickr_token'] != '') {
+ $check = flickr_auth_checkToken($row['flickr_token']);
+ if($check) {
$page = _request('page')?_request('page'):1;
$photosets = flickr_photosets_getList($row['flickr_nsid'],$row['flickr_token']);
@@ -67,6 +69,13 @@
} else {
echo generer_action_auteur('flickr_ajouter_documents',_request('id'), generer_url_ecrire('breves_edit','id_breve='._request('id')),$html);
}
+
+ } else {
+ include_spip('base/abstract_sql');
+ global $table_prefix;
+ spip_query("UPDATE ".$table_prefix."_auteurs SET flickr_nsid = '', flickr_token = '' WHERE id_auteur=$connect_id_auteur");
+ echo _T('fpipr:demande_authentification',array('url'=>generer_url_ecrire('auteurs_edit','id_auteur='.$connect_id_auteur)));
+ }
} else {
echo _T('fpipr:demande_authentification',array('url'=>generer_url_ecrire('auteurs_edit','id_auteur='.$connect_id_auteur).'">là</a>'));
}
Modified: _plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php
--- _plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php Wed Aug 2 17:04:08 2006
@@ -21,9 +21,11 @@
function flickr_api_call($method, $params=array(), $auth_token='') {
global $FLICKR_API_KEY;
$params['api_key'] = $FLICKR_API_KEY;
- if($auth_token) $params['auth_token'] = $auth_token;
- $params['method'] = $method;
+ if($auth_token) {
+ $params['auth_token'] = $auth_token;
$params['api_sig'] = flickr_sign($params);
+ }
+ $params['method'] = $method;
$args = '';
foreach($params as $k => $v) {
@@ -89,6 +91,32 @@
}
}
+function flickr_auth_checkToken($token) {
+ /*<rsp stat="fail">
+ <err code="98" msg="Invalid auth token"/>
+ </rsp>
+ OR
+<auth>
+ <token>976598454353455</token>
+ <perms>read</perms>
+ <user nsid="12037949754@N01" username="Bees" fullname="Cal H" />
+</auth>*/
+ $check = flickr_check_error(flickr_api_call('flickr.auth.checkToken',array('auth_tokne'=>$token)));
+ if($check) {
+ $auth_info = array();
+ foreach($check as $t => $v) {
+ if(strpos($t,'user')) {
+ if(preg_match_all('#(nsid|fullname|username)="(.*?)"#',$photo,$matches,PREG_SET_ORDER)) {
+ foreach($matches as $m) $auth_info['user_'.$m[1]] = $m[2];
+ }
+ } else {
+ $auth_info[$t] = $v[0];
+ }
+ }
+ return $auth_info;
+ } else return false;
+}
+
//======================================================================
class FlickrPhotos {