TwitterOAuth Store токены для автономного использования - PullRequest
1 голос
/ 10 марта 2012

Привет, извините за мой плохой английский, я написал простое приложение для обновления статуса в твиттере.Вход в Твиттер:

    require("twitteroauth.php");
    session_start();
    $twitteroauth = new TwitterOAuth('*******', '***********');
    $request_token = $twitteroauth->getRequestToken('http://127.0.0.1/twitter_oauth.php');
    $_SESSION['oauth_token'] = $request_token['oauth_token'];
    $_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
    if($twitteroauth->http_code==200)
    {
        $url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']);
        header('Location: '. $url);
    } 
    else 
    {
        die('error');
    }

twitter_oauth.php:

require("twitteroauth.php");
session_start();
if(!empty($_GET['oauth_verifier']) && !empty($_SESSION['oauth_token']) && !empty($_SESSION['oauth_token_secret']))
{
    require("config.php");
    $twitteroauth = new TwitterOAuth('****', '********', $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
    $access_token = $twitteroauth->getAccessToken();
    $_SESSION['access_token'] = $access_token;
    $user_info = $twitteroauth->get('account/verify_credentials');
    $username= $user_info->screen_name;
    $followerInit= $user_info->followers_count;
    $oauth_token=$_SESSION['oauth_token'];
    $oauth_token_secret=$_SESSION['oauth_token_secret'];
    $update=query("SELECT 1 FROM connect WHERE id_user=(SELECT id FROM user WHERE user='$username' )");
    if(mysql_num_rows($update)>0)
    {
        query("UPDATE connect set oauth_token='$oauth_token',  oauth_token_secret='$oauth_token_secret' WHERE id_user=(SELECT id FROM user WHERE user='$username' ) ");
    }   
    else
    {
        query("INSERT INTO connect(id_user,followerInit,oauth_token,oauth_token_secret) VALUES((SELECT id FROM user WHERE user='$username' ),$followerInit,'$oauth_token','$oauth_token_secret' )  ");
    }
    header('Location: index.php');
} 
else 
{
    header('Location: twitter_login.php');
}

Я сохраняю oauth_token, oauth_token_secret и в index.php, когда у пользователя есть oauth_token, oauth_token_secret, мне бы хотелось статус обновления:

    session_start();
    require("twitterbot/twitterbot/twitteroauth.php");
    require("twitterbot/config.php");
    $query=query("SELECT oauth_token,oauth_token_secret FROM connect WHERE id_user=8");
    if(mysql_num_rows($query)>0)
    {
        $row=mysql_fetch_row($query);
    }
    else
    {
        header('Location: twitter_login.php');
    }
    $twitteroauth = new TwitterOAuth('bSMnfSsk3CTcSV85jKWz1w', 'HeNAG1v2sgxhkq1QyfZDd029JUDdRNGAaO85Nsg', $row[0], $row[1]);
    print_r($twitteroauth);
    print_r($twitteroauth->OAuthRequest('https://twitter.com/statuses/update.xml',
array('status' => "Hey! I'm posting via #OAuth!"), 'POST'));

, но в index.php у меня есть ошибка: «Не удалось аутентифицировать вас. /Statuses/update.xml», и я не могу обновить статус ...

1 Ответ

2 голосов
/ 10 марта 2012
$access_token = $twitteroauth->getAccessToken();
$_SESSION['access_token'] = $access_token;
$user_info = $twitteroauth->get('account/verify_credentials');
$username= $user_info->screen_name;
$followerInit= $user_info->followers_count;
$oauth_token=$_SESSION['oauth_token'];
$oauth_token_secret=$_SESSION['oauth_token_secret'];

В этом коде вы получаете доступ oauth_token, но сохраняете временный запрос oauth_token в базе данных. Вместо этого вам нужно сохранить access_token.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...