2011-07-24 3 views
-1

J'essaie donc de poster des tweets d'un utilisateur via mon application. Chaque fois que je reçois fraîchement oauth_token et oauth_secret, je peux poster un tweet pas de problème, mais si je tente de les sauver pour plus tard, puis poster un tweet, je reçois l'erreur:twitter Authentification oauth et publication de tweet ne fonctionnant pas

object(stdClass)#5 (2) { 
    ["error"]=> 
     string(27) "Could not authenticate you." 
     ["request"]=> 
     string(23) "/1/statuses/update.json" 
    } 

Voici le script que je utiliser pour obtenir les jetons au départ:

<?php 

require("config.php"); 
require("twitterOAuth.php"); 
session_start(); 

     if(!empty($_GET['oauth_verifier']) && !empty($_SESSION['oauth_token']) &&           !empty($_SESSION['oauth_token_secret'])){ 
    // We've got everything we need 
} else { 
    // Something's missing, go back to square 1 
    //header('Location: new_index.php'); 
} 

// TwitterOAuth instance, with two new parameters we got in twitter_login.php 
$twitteroauth = new TwitterOAuth($consumer_key, $consumer_secret, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); 
// Let's request the access token 

$oauth_token = $_SESSION['oauth_token']; 
$oauth_secret = $_SESSION['oauth_token_secret']; 

$access_token = $twitteroauth->getAccessToken($_GET['oauth_verifier']); 

//post tweet 
$result = $twitteroauth->post('statuses/update', array('status' => 'asd ')); 


// Save it in a session var 
$_SESSION['access_token'] = $access_token; 
// Let's get the user's info 
$user_info = $twitteroauth->get('account/verify_credentials'); 
?> 

Et voici le script où j'essaie juste de tweet en utilisant les jetons:

<?php 
require("config.php"); 
require_once('twitterOAuth.php'); 
$oAuthToken  = $argv[1]; 
$oAuthSecret = $argv[2]; 
$message = $argv[3]; 
$post_id = $argv[4]; 

// create a new instance 
$tweet = new TwitterOAuth($consumerKey, $consumerSecret, "$oAuthToken", "$oAuthSecret"); 

//send a tweet 
$result = $tweet->post('statuses/update', $message);//array('status' => "$message")); 
$tweet_id = $result['id_str']; 

?> 

Toutes les idées? Je pourrais vraiment utiliser de l'aide ici. Cela a bien fonctionné la nuit dernière et maintenant tout à coup ça ne marche pas du tout:/

Les jetons pourraient-ils expirer et ne pas fonctionner après qu'ils ne soient pas des variables de session?

Répondre

0

Essayez d'utiliser ce code (dans la deuxième partie de votre code):

<?php 
session_start(); 
require("config.php"); 
require_once("twitterOAuth.php"); 

$oAuthToken = $_SESSION['oauth_token']; 
$oAuthSecret = $_SESSION['oauth_token_secret']; 

et ainsi de suite. Ce code fonctionne-t-il pour toi?

1
/*Try this one it will work proper*/ 
session_start(); 
require("config.php"); 
require_once("twitterOAuth.php"); 

$access_token = $_SESSION['access_token'];//which you got from callback 

/* Create a TwitterOauth object with consumer/user tokens. */ 
$tweet  = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']); 

$tweet->post('direct_messages/new', array('text' => $messageBody, 'screen_name' => $screenName))