tweet secret example español developers developer desarrollador cuenta php twitter oauth

secret - Accediendo a la API de Twitter a través de PHP



twitter developers documentation (3)

Estoy trabajando para que mi script se vincule con OAuth en lugar de Basic Auth, y estoy atascado. Hasta el momento, estoy trabajando en la autenticación en este momento, pero no puedo hacer que funcione. Este código:

<?php include ''config.php''; include ''twitteroauth/twitteroauth.php''; // Use config.php credentials $conn = new TwitterOAuth(CONSUMER_KEY,CONSUMER_SECRET); // Use application''s registered callback URL // And get temporary credentials using made connection $tempCred = $conn->getRequestToken(); // Use ''Sign in with Twitter'' // for Redirect URL $rURL = $conn->getAuthorizeURL($tempCred); echo ''<a href="''.$rURL.''">1. Click me first!</a><br />'';

funciona bien Sin embargo, cuando llego a este paso:

// Build a new TwitterOAuth connection // Now that the app has verified credentials $conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION[''oauth_token''], $_SESSION[''oauth_token_secret'']); // Get non-temporary credentials from Twitter $tokenCred = $conn->getAccessToken(); echo ''<a href="index.php">2. Click me next!</a><br />''; ?>

Obtengo una página no disponible, Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error . ¿Alguien está familiarizado con este problema? Estaba siguiendo la documentación lo más que pude, pero como soy un completo novato, estoy seguro de que cometí un error estúpido.

Además, una pregunta de seguimiento: una vez que obtengo mi script autorizado a través de este proceso, ¿cuál es mi próximo paso en términos de capturar el feed xml amigos? ¿Puedo simplemente cURL como antes?

EDITAR: la fuente de getAccessToken(); es como sigue:

function getAccessToken($oauth_verifier = FALSE) { $parameters = array(); if (!empty($oauth_verifier)) { $parameters[''oauth_verifier''] = $oauth_verifier; } $request = $this->oAuthRequest($this->accessTokenURL(), ''GET'', $parameters); $token = OAuthUtil::parse_parameters($request); $this->token = new OAuthConsumer($token[''oauth_token''], $token[''oauth_token_secret'']); return $token; }

Y sí, config.php es correcto.


He usado esta API y funcionó bien para mí. No se me ocurre nada más, excepto comprobar realmente que CONSUMER_KEY y CONSUMER_SECRET, como dijo Ian Quigley. Porque dices que tu $ _SESSION [''oauth_token''] está vacía, y no debería ser así. El motivo por el que está vacío podrían ser los valores incorrectos en CONSUMER_KEY y CONSUMER_SECRET. Si envía claves incorrectas a Twitter, no le proporciona las variables de sesión que necesita.

Simplemente verifique si esos valores en https://twitter.com/apps (los datos de su aplicación) y en el archivo config.php son idénticos. De forma predeterminada, config.php contiene valores incorrectos, debe completar los suyos.


Verifique que CONSUMER_KEY y CONSUMER_SECRET sean los mismos que los valores en la página de su aplicación en twitter.

¿Cuál es la URL de autorización devuelta por el método?


Utilicé esta API para la autentificación oauth basada en pin para twitter. Utilicé la biblioteca php simple oauth http://php.net/manual/en/book.oauth.php .

Aquí está el código si quieres ver.

class TwitterPinBasedOauth{ private static $requestTokenUrl = ''http://twitter.com/oauth/request_token''; private static $accessTokenUrl = ''http://twitter.com/oauth/access_token''; private static $authorizeUrl = ''http://twitter.com/oauth/authorize''; private static $updateUrl = ''http://twitter.com/statuses/update.json''; private $twitterOauth; public function __construct(){ $this->twitterOauth = new OAuth(ConsumerToken::$CONSUMER_KEY, ConsumerToken::$CONSUMER_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION); } public function getAndStoreRequestToken(){ $callbackUrl = "oob"; $response = $this->twitterOauth->getRequestToken(self::$requestTokenUrl, $callbackUrl); print_r("REQUEST TOKEN:/n"); print_r($response); print_r(PHP_EOL); file_put_contents(Constants::$oauth_request_file, serialize($response)); echo "AUTH URL:/n".self::$authorizeUrl."?oauth_token=".$response[''oauth_token''].PHP_EOL; } public function getAcessToken($pin){ $request_tokens = unserialize(file_get_contents(Constants::$oauth_request_file)); $this->twitterOauth->setToken($request_tokens["oauth_token"],$request_tokens["oauth_token_secret"]); $response = $this->twitterOauth->getAccessToken(self::$accessTokenUrl, NULL, $pin); file_put_contents(Constants::$oauth_access_file, serialize($response)); print_r("ACESS TOKEN:/n"); print_r($response); print_r(PHP_EOL); } public function updateStatus($status){ try{ $access_tokens = unserialize(file_get_contents(Constants::$oauth_access_file)); $this->twitterOauth->setToken($access_tokens["oauth_token"],$access_tokens["oauth_token_secret"]); $this->twitterOauth->fetch(self::$updateUrl, array(''status'' => $status), OAUTH_HTTP_METHOD_POST); } catch(OAuthException $e){ error_log($e->getMessage().PHP_EOL); return intval($e->getCode()); } } }