Changeset 73676 in spip-zone


Ignore:
Timestamp:
Jun 17, 2013, 9:08:36 PM (6 years ago)
Author:
cedric@…
Message:

Generer une exception et une erreur user-friendly (quoiqu'en anglais...) en cas de librairie cURL manquante

Location:
_plugins_/twitter/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/twitter/trunk/action/ajouter_twitteraccount.php

    r73571 r73676  
    4444                 * Ainsi que l'adresse de redirection pour la seconde action
    4545                 */
    46                 $connection = new TwitterOAuth($cfg['twitter_consumer_key'], $cfg['twitter_consumer_secret']);
    47                 $request_token = $connection->getRequestToken($oauth_callback);
    48                 $token = $request_token['oauth_token'];
    49                 session_set('oauth_token',$token);
    50                 session_set('oauth_token_secret',$request_token['oauth_token_secret']);
    51                 session_set('twitter_redirect',str_replace('&','&',$redirect));
    52                
    53                 /**
    54                  * Vérification du code de retour
    55                  */
    56                 switch ($code = $connection->http_code) {
     46                try {
     47                        $connection = new TwitterOAuth($cfg['twitter_consumer_key'], $cfg['twitter_consumer_secret']);
     48                        $request_token = $connection->getRequestToken($oauth_callback);
     49                        $token = $request_token['oauth_token'];
     50                        session_set('oauth_token',$token);
     51                        session_set('oauth_token_secret',$request_token['oauth_token_secret']);
     52                        session_set('twitter_redirect',str_replace('&','&',$redirect));
     53
    5754                        /**
    58                          * Si le code de retour est 200 (ok)
    59                          * On envoie l'utilisateur vers l\'url d'autorisation
     55                         * Vérification du code de retour
    6056                         */
    61                         case 200:
    62                                 $url = $connection->getAuthorizeURL($token);
    63                                 include_spip('inc/headers');
    64                                 $GLOBALS['redirect'] = $url;
    65                                 #echo redirige_formulaire($url);
    66                                 break;
    67                         /**
    68                          * Sinon on le renvoie vers une erreur
    69                          */
    70                         default:
    71                                 spip_log('Erreur connexion twitter','microblog');
    72                                 spip_log($connection, 'twitter'._LOG_ERREUR);
    73                                 $redirect = parametre_url($redirect,'erreur_code',$code);
    74                                 $redirect = parametre_url($redirect,'erreur','erreur_conf_app','&');
    75                                 $GLOBALS['redirect'] = $redirect;
    76                                 break;
     57                        switch ($code = $connection->http_code) {
     58                                /**
     59                                 * Si le code de retour est 200 (ok)
     60                                 * On envoie l'utilisateur vers l\'url d'autorisation
     61                                 */
     62                                case 200:
     63                                        $url = $connection->getAuthorizeURL($token);
     64                                        include_spip('inc/headers');
     65                                        $GLOBALS['redirect'] = $url;
     66                                        #echo redirige_formulaire($url);
     67                                        break;
     68                                /**
     69                                 * Sinon on le renvoie vers une erreur
     70                                 */
     71                                default:
     72                                        spip_log('Erreur connexion twitter','microblog');
     73                                        spip_log($connection, 'twitter'._LOG_ERREUR);
     74                                        $redirect = parametre_url($redirect,'erreur_code',$code);
     75                                        $redirect = parametre_url($redirect,'erreur','erreur_conf_app','&');
     76                                        $GLOBALS['redirect'] = $redirect;
     77                                        break;
     78                        }
     79                }
     80                catch(Exception $e){
     81                        session_set('oauth_erreur_message',$e->getMessage());
     82                        $redirect = parametre_url($redirect,'erreur',"erreur_oauth",'&');
     83                        $GLOBALS['redirect'] = $redirect;
    7784                }
    7885        }
  • _plugins_/twitter/trunk/formulaires/configurer_microblog.php

    r73579 r73676  
    3838
    3939function twitter_affiche_erreur_config($erreur, $erreur_code){
     40        static $message_erreur = array();
    4041        if (!$erreur)
    4142                return "";
     43
     44        $key = "$erreur-$erreur_code";
     45        if (isset($message_erreur[$key]))
     46                return $message_erreur[$key];
    4247
    4348        static $status_string = array(
     
    6065                        $err = "Le jeton de sécurité a expiré, recommencez l'opération.";
    6166                        break;
     67                case "erreur_oauth":
     68                        $err = session_get("oauth_erreur_message");
     69                        session_set("oauth_erreur_message");
     70                        if (!$err)
     71                                $err = "???";
     72                        break;
    6273                case "erreur_conf_app":
    6374                default:
     
    7182                $err .= "<br />Avez-vous bien rempli le champ \"Callback URL\" de votre application Twitter ?";
    7283
    73         return "<p>$err</p>";
     84        return $message_erreur[$key] = "<p>$err</p>";
    7485}
  • _plugins_/twitter/trunk/inc/twitteroauth.php

    r73555 r73676  
    207207  function http($url, $method, $postfields = NULL) {
    208208    $this->http_info = array();
     209          if (!function_exists("curl_init")
     210            OR !function_exists("curl_setopt")
     211            OR !function_exists("curl_exec")
     212          )
     213                  throw new OAuthException('cURL is missing');
     214
    209215    $ci = curl_init();
    210216    /* Curl settings */
  • _plugins_/twitter/trunk/paquet.xml

    r73576 r73676  
    22        prefix="twitter"
    33        categorie="communication"
    4         version="1.0.2"
     4        version="1.0.3"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.