Twitter oauth: получение неопределенного индекса: oauth_token_secret в
Привет я пытаюсь опубликовать твиты с помощью oauth (PHP)
я создал приложение в своем твиттере,
я выполнил какой-то скрипт с открытым исходным кодом, но он выдает следующую ошибку,
Notice: Undefined index: oauth_token_secret in
Как исправить эту проблему
мой фрагмент
require_once('twitterOAuth/twitterOAuth.php');
require_once('twitterOAuth/OAuth.php');
$consumer_key='q3fsdfsdfsdw';
$consumer_secret='rfsdfsdfsdfsdfdsfsdL';
$request_token='http://twitter.com/oauth/request_token';
$request_token_secret='5454545';
$oauth = new TwitterOAuth($consumer_key, $consumer_secret,
$request_token, $request_token_secret);
// Ask Twitter for an access token (and an access token secret)
$request = $oauth->getAccessToken();
$access_token = $request['amp;oauth_token'];
$access_token_secret = $request['oauth_token_secret'];=======> HERE AM GETTING TROUBLE
function getAccessToken($token = NULL, $pin = NULL)
{
if ($pin)
$r = $this->oAuthRequest($this->accessTokenURL(),
array("oauth_verifier" => $pin));
else
$r = $this->oAuthRequest($this->accessTokenURL());
$token = $this->oAuthParseResponse($r);
$this->token = new OAuthConsumer($token['oauth_token'],
$token['oauth_token_secret']);
return $token;
}
Моя полная ошибка здесь
Notice: Undefined index: oauth_token_secret in E:\wamp\www\source\oauth\twitterOAuth\twitteroauth.php on line 118
Notice: Undefined index: oauth_token_secret in E:\wamp\www\source\oauth\bharani.php on line 18
8 ответов
В настройках приложения Twitter "URL обратного вызова" добавьте любой URL обратного вызова, например:
https://dev.twitter.com/
В противном случае твиттер будет рассматривать ваше приложение как настольное приложение, и вы получите ошибку:
Desktop applications only support the oauth_callback value 'oob'
и ваш скрипт php выдаст ошибки вроде:
Notice: Undefined index: oauth_token in twitteroauth.php on line 80
Но, установив URL-адрес обратного вызова из сценария php, он перезапишет заполнитель URL-адреса обратного вызова по умолчанию и рассмотрит ваше приложение как веб-приложение.
У меня была такая же ошибка:
Примечание: неопределенный индекс: oauth_token в /web/htdocs/www.xxx.com/home/private/libraries> /twitteroauth/twitteroauth.php в строке 118
Примечание: неопределенный индекс: oauth_token_secret в /web/htdocs/www.xxx.com/home/private/libraries/twitteroauth/twitteroauth.php в строке 118
Отладка на линии, что указала ошибка:
function getAccessToken($oauth_verifier = FALSE) {
// .... code .... //
$token = OAuthUtil::parse_parameters($request);
$this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
exit(print_r($token));
// ... code ....//
}
Я нашел это:
Array (["1.0" encoding = "UTF-8"?> Обязательный параметр oauth_verifier не указан /oauth/access_token .......
После того, как я прочитал какую-то проблему в Интернете и нашел решение. В моем коде я должен передать oauth_verifier:
$request = $oauth->getAccessToken($_GET['oauth_verifier']);
Надеюсь, я помогу кому-то, проблема была в том, что для соответствия OAuth 1.0a требуется oauth_verifier!
Ресурс: https://dev.twitter.com/discussions/16443
Извиняюсь за плохой английский.
Пожалуйста, проверьте php-компоненты:
- Curl SSL
- Открыть SSL
- hash_hmac
@Bharanikumar
AFAIK firt you should call the function
$request_token = $oauth->getRequestToken();
then u will get
$request_token['oauth_token']; and $request_token['oauth_token_secret'];
тогда делай ниже
$URL = $oauth->getAuthorizeURL($request_token);
$oauth = new TwitterOAuth('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET', $request_token['oauth_token'],$request_token['oauth_token_secret']);
$access = $oauth->getAccessToken(NULL, $_GET['pin']);
$accessToken = $access ['oauth_token'];
$accessTokenSecret = $access ['oauth_token_secret'];
& then apply your code
if ($pin)
Надеюсь, что это поможет вам..
Проблема в том, что в запросе произошла ошибка, поэтому вы не получите oauth_token_secret в ответе из Twitter. Проверьте простое, но продуманное решение здесь.. http://errorbank.blogspot.com/2012/07/php-twitter-undefined-index.html
Я такой же баг. Потому что я не настраивал OAUTH_CALLBACK. Надеюсь, полезно для вас.
Эта проблема была решена для меня путем установки URL-адреса обратного вызова в настройках приложения Twitter. http://dev.twitter.com/
Это просто уведомление.
Вы не определили этот индекс массива или что-то в этом роде. Вставьте свою полную ошибку и строки, где php пишет это уведомление.
Другой способ: вы можете отключить с помощью этого кода:
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);