проверка подлинности и публикация сообщений в Твиттере не работает - PullRequest
0 голосов
/ 24 июля 2011

Так что я пытаюсь опубликовать твиты пользователя через мое приложение. Всякий раз, когда я только что получаю oauth_token и oauth_secret, я не могу опубликовать твит без проблем. Однако, если я пытаюсь сохранить их на потом, а затем опубликовать твит, я получаю сообщение об ошибке:

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

Вот скрипт, который я использую для получения токенов:

<?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');
?>

А вот сценарий, в котором я просто пытаюсь твитнуть его с помощью токенов:

<?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'];

?>

Есть идеи? Я мог бы действительно использовать некоторую помощь здесь. Прошлой ночью все работало нормально, а теперь внезапно не работает вообще: /

Может ли токены истечь и не работать, если они не являются переменными сеанса?

Ответы [ 2 ]

1 голос
/ 21 июня 2012
/*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))
0 голосов
/ 24 июля 2011

Попробуйте использовать этот код (во второй части вашего кода):

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

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

и так далее.Этот код работает для вас?

...