Ошибка 403 при попытке выполнить шаг «Отправить пользователя в авторизацию» в Twitter (PHP OAuth) - PullRequest
0 голосов
/ 26 октября 2011

Я потратил на это кучу часов и не могу понять, в чем здесь проблема.Я пишу свое собственное твиттер-приложение.Я скачал OAuth PHP Library, которую я использую.Все было настроено правильно.

Я сделал Шаг 1 и «Получить токен запроса».Я получил верный ответ с токеном, секретом токена и подтверждением обратного вызова TRUE.

Теперь я перешел к следующему шагу «Отправить пользователя в авторизацию» и передал параметр oauth_token в запрос.Запрос был отправлен и перенаправлен на страницу Twitter, но когда он появляется, отображается сообщение об ошибке:

Запрос на исключение не выполнен с кодом 403. Вау!Эта страница требует некоторой информации, которая не была предоставлена.Пожалуйста, вернитесь на сайт, который отправил вас на эту страницу, и попробуйте еще раз ... это, вероятно, было честной ошибкой.В чем проблема??Сообщение об ошибке не очень полезно.Согласно Twitter 403 означает, что запрос был понят, но отклонен.Я действительно застрял здесь и был бы признателен за помощь в этом.

Вот как выглядит код (очевидно, я заменял свой токен и секретные ключи на ########, поэтому, если кто-то хочет проверить это локально своими собственными ключами, просто замените значения #########:

<?php

    include_once "scripts/OAuth/OAuthStore.php";
    include_once "scripts/OAuth/OAuthRequester.php";

    // register at http://twitter.com/oauth_clients and fill these two 
    define("TWITTER_CONSUMER_KEY", "#############");
    define("TWITTER_CONSUMER_SECRET", "#############");

    define("TWITTER_OAUTH_HOST","https://api.twitter.com");

    define("TWITTER_REQUEST_TOKEN_URL", TWITTER_OAUTH_HOST . "/oauth/request_token");
    define("TWITTER_AUTHORIZE_URL", TWITTER_OAUTH_HOST . "/oauth/authorize");
    define("TWITTER_ACCESS_TOKEN_URL", TWITTER_OAUTH_HOST . "/oauth/access_token");
    define("TWITTER_PUBLIC_TIMELINE_API", TWITTER_OAUTH_HOST . "/statuses/public_timeline.json");
    define("TWITTER_UPDATE_STATUS_API", TWITTER_OAUTH_HOST . "/statuses/update.json");

    define('OAUTH_TMP_DIR', function_exists('sys_get_temp_dir') ? sys_get_temp_dir() : realpath($_ENV["TMP"])); 

    // Twitter test
    $options = array('consumer_key' => TWITTER_CONSUMER_KEY, 'consumer_secret' => TWITTER_CONSUMER_SECRET);
    OAuthStore::instance("2Leg", $options);

try
{
// Obtain a request object for the request we want to make
$request = new OAuthRequester(TWITTER_REQUEST_TOKEN_URL, "POST");
$result = $request->doRequest(0);
parse_str($result['body'], $params);

list($token, $secret, $status) = explode('&', $result['body']);

// now make the request.
$request = new OAuthRequester(TWITTER_AUTHORIZE_URL, 'POST', $token);

$result = $request->doRequest();
}
catch(OAuthException2 $e)
{
echo "Exception " . $e->getMessage();
}

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