Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Andei lendo sobre Authentication & Authorization aqui: https://dev.twitter.com/docs/auth
Fiz alguns testes, mas não deu certo.
A idéia é programar para o envio de tweets.
Ví que preciso armazenar os tokens no banco de dados para depois utilizar remotamente, autenticando no twitter e enviando a mensagem.
Mas parei por aqui.. quero saber a idéia, a lógica. Já tenho os tokens, a aplicação registrada no twitter applications...
O Authorization requer a intervenção do usuário, ele tem que confirmar que a aplicação vai acessar a conta no twitter.
Já o Authentication irá utilizar os dados armazenados, se autenticar no twitter, e efetuar o envio.
Aqui são pegos os tokens
// The TwitterOAuth instance
$twitteroauth = new TwitterOAuth('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET');
// Requesting authentication tokens, the parameter is the URL we will be redirected to
$request_token = $twitteroauth->getRequestToken('http://localhost.com/twitter_oauth.php');
// Saving them into the session
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
// If everything goes well..
if($twitteroauth->http_code==200){
// Let's generate the URL and redirect
$url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']);
header('Location: '. $url);
} else {
// It's a bad idea to kill the script, but we've got to know when there's an error.
die('Something wrong happened.');
}
Aqui armazena no banco de dados
if(isset($user_info->error)){
// Something's wrong, go back to square 1
header('Location: twitter_login.php');
} else {
// Let's find the user by its ID
$query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'twitter' AND oauth_uid = ". $user_info->id);
$result = mysql_fetch_array($query);
// If not, let's add it to the database
if(empty($result)){
$query = mysql_query("INSERT INTO users (oauth_provider, oauth_uid, username, oauth_token, oauth_secret) VALUES ('twitter', {$user_info->id}, '{$user_info->screen_name}', '{$access_token['oauth_token']}', '{$access_token['oauth_token_secret']}')");
$query = mysql_query("SELECT * FROM users WHERE id = " . mysql_insert_id());
$result = mysql_fetch_array($query);
} else {
// Update the tokens
$query = mysql_query("UPDATE users SET oauth_token = '{$access_token['oauth_token']}', oauth_secret = '{$access_token['oauth_token_secret']}' WHERE oauth_provider = 'twitter' AND oauth_uid = {$user_info->id}");
}
$_SESSION['id'] = $result['id'];
$_SESSION['username'] = $result['username'];
$_SESSION['oauth_uid'] = $result['oauth_uid'];
$_SESSION['oauth_provider'] = $result['oauth_provider'];
$_SESSION['oauth_token'] = $result['oauth_token'];
$_SESSION['oauth_secret'] = $result['oauth_secret'];
header('Location: twitter_update.php');
}
Como funciona isso?
Valeu.
Aqui tem o artigo com a idéia do que estou falando: http://net.tutsplus.com/tutorials/php/how-to-authenticate-users-with-twitter-oauth/
Carregando comentários...