114 votes

Twitter QU'API renvoie une erreur 215, les données d’authentification incorrectes

Je suis en train d’appeler les API de Twitter suivant pour obtenir une liste de disciples d’un utilisateur.

http://API.twitter.com/1.1/followers/IDS.JSON?Cursor=-1&screen_name=username

Et j’obtiens ce message d’erreur dans la réponse.

Je n’arrive pas à trouver de la documentation relie à ce code d’erreur. Quelqu'un a une idée sur cette erreur ?

26voto

A Bright Worker Points 778

Un code très concis sans n’importe quel autre fichier php comme d’oauth etc.. Remarque pour obtenir la suite de touches, vous devez vous inscrire avec https://dev.twitter.com et création d’application.

Qui concerne

11voto

Pavel Points 334

La seule solution que j'ai trouvé pour l'instant est:

  • Créer une application twitter développeur panneau
  • Autoriser l'utilisateur à votre demande (ou de votre demande de compte d'utilisateur) et d'enregistrer les "oauth_token" et "oauth_token_secret" qui Twitter vous donner. Utilisation TwitterOAuth bibliothèque pour cela, il est assez facile, voir les exemples avec est livré avec une bibliothèque.
  • L'utilisation de ce jetons que vous pouvez faire authentifié des demandes de la part de l'utilisateur. Vous pouvez le faire avec la même bibliothèque.

    // Arguments 1 and 2 - your application static tokens, 2 and 3 - user tokens, received from Twitter during authentification  
    $connection = new TwitterOAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, $tokens['oauth_token'], $tokens['oauth_token_secret']);  
    $connection->host = 'https://api.twitter.com/1.1/'; // By default library uses API version 1.  
    $friendsJson = $connection->get('/friends/ids.json?cursor=-1&user_id=34342323');  
    

Cela vous renvoie la liste des utilisateurs des amis.

7voto

Dante Cullari Points 265

TROUVÉ UNE SOLUTION à l'aide de l' Abraham TwitterOAuth de la bibliothèque. Si vous utilisez une ancienne mise en œuvre, les lignes suivantes doivent être ajoutées après la nouvelle TwitterOAuth objet est instancié:

$connection->host = "https://api.twitter.com/1.1/";
$connection->ssl_verifypeer = TRUE;
$connection->content_type = 'application/x-www-form-urlencoded';

Les 2 premières lignes sont maintenant documentés dans Abraham bibliothèque fichier Readme, mais la 3ème, ne l'est pas. Assurez-vous également que votre oauth_version est encore 1.0.

Voici mon code pour obtenir toutes les données utilisateur 'utilisateurs/show avec un nouveau utilisateur authentifié et en retournant le nom complet de l'utilisateur et l'utilisateur icône avec 1.1 - le code suivant est mis en œuvre dans l'authentification de rappel de fichier:

session_start();
require ('twitteroauth/twitteroauth.php');
require ('twitteroauth/config.php');

$consumer_key = '****************';
$consumer_secret = '**********************************';

$to = new TwitterOAuth($consumer_key, $consumer_secret);

$tok = $to->getRequestToken('http://exampleredirect.com?twitoa=1');

$token = $tok['oauth_token'];
$secret = $tok['oauth_token_secret'];

//save tokens to session
$_SESSION['ttok'] = $token;
$_SESSION['tsec'] = $secret;

$request_link = $to->getAuthorizeURL($token,TRUE);

header('Location: ' . $request_link);

Le code suivant est alors la redirection après l'authentification et de la demande de jeton

if($_REQUEST['twitoa']==1){
    require ('twitteroauth/twitteroauth.php');
    require_once('twitteroauth/config.php');
    //Twitter Creds
    $consumer_key = '*****************';
    $consumer_secret = '************************************';

    $oauth_token = $_GET['oauth_token']; //ex Request vals->http://domain.com/twitter_callback.php?oauth_token=MQZFhVRAP6jjsJdTunRYPXoPFzsXXKK0mQS3SxhNXZI&oauth_verifier=A5tYHnAsbxf3DBinZ1dZEj0hPgVdQ6vvjBJYg5UdJI

    $ttok = $_SESSION['ttok'];
    $tsec = $_SESSION['tsec'];

    $to = new TwitterOAuth($consumer_key, $consumer_secret, $ttok, $tsec);
    $tok = $to->getAccessToken();
    $btok = $tok['oauth_token'];
    $bsec = $tok['oauth_token_secret'];
    $twit_u_id = $tok['user_id'];
    $twit_screen_name = $tok['screen_name'];

    //Twitter 1.1 DEBUG
    //print_r($tok);
    //echo '<br/><br/>';
    //print_r($to);
    //echo '<br/><br/>';
    //echo $btok . '<br/><br/>';
    //echo $bsec . '<br/><br/>';
    //echo $twit_u_id . '<br/><br/>';
    //echo $twit_screen_name . '<br/><br/>';

    $twit_screen_name=urlencode($twit_screen_name);
    $connection = new TwitterOAuth($consumer_key, $consumer_secret, $btok, $bsec);
    $connection->host = "https://api.twitter.com/1.1/";
    $connection->ssl_verifypeer = TRUE;
    $connection->content_type = 'application/x-www-form-urlencoded';
    $ucontent = $connection->get('users/show', array('screen_name' => $twit_screen_name));

    //echo 'connection:<br/><br/>';
    //print_r($connection);
    //echo '<br/><br/>';
    //print_r($ucontent);

    $t_user_name = $ucontent->name;
    $t_user_icon = $ucontent->profile_image_url;

    //echo $t_user_name.'<br/><br/>';
    //echo $t_user_icon.'<br/><br/>';
}

Il m'a fallu trop longtemps pour celui-ci. Espérons que cela aide quelqu'un!!

5voto

christopher Points 574

Mise à jour : Twitter QU'API 1 est maintenant obsolète. Voir ci-dessus la réponse.

Twitter 1.1 ne fonctionne pas avec cette syntaxe (quand j’ai écrit cette réponse). Doit être 1, pas de 1,1. Cela fonctionne :

http://API.twitter.com/1/followers/IDS.JSON?Cursor=-1&screen_name=username

4voto

spiele_r Points 183

L’url avec `` dans c’est correct, c’est la nouvelle API Twitter Version 1.1.

Mais vous avez besoin d’une application et autorisez votre application (et l’utilisateur) à l’aide d’oAuth.

Lire plus à ce sujet sur le site de documentation développeurs Twitter :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X