Привет, я пытаюсь опубликовать твиты, используя oauth (PHP)
Я создал приложение в своей учетной записи Twitter,
Я выполнил какой-то скрипт с открытым исходным кодом, но это приводит к ошибке ниже,
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
В настройке вашего приложения twitter «URL обратного вызова» добавьте URL-адрес обратного вызова, например:
https://dev.twitter.com/
В противном случае twitter рассмотрит ваше приложение как настольное приложение, и вы получите сообщение об ошибке:
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 ....// }
Я нашел это:
Массив (["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#comment-36618
Извиниться за плохой английский.
Пожалуйста, проверьте php companents:
@Bharanikumar
AFAIK firt вы должны вызвать функцию
$request_token = $oauth->getRequestToken();
то u получит
$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'];
& затем применить свой код
if ($pin)
Надеюсь, что это поможет вам..
Проблема в том, что в запросе есть ошибка, так что вы не получите oauth_token_secret в ответ от Twitter. Ознакомьтесь с простым, но сложным решением здесь. http://errorbank.blogspot.com/2012/07/php-twitter-undefined-index.html
Эта проблема была решена для меня, установив URL-адрес обратного вызова в моих настройках приложения Twitter. http://dev.twitter.com
Я такая же ошибка. Потому что я не настроил OAUTH_CALLBACK. Надеюсь, полезно для вас.
Это просто уведомление.
Вы не указали этот индекс массива или что-то еще. Вставьте полную ошибку и строки, где php пишет это уведомление.
Другой способ: вы можете отключить этот код:
// Report all errors except E_NOTICE // This is the default value set in php.ini error_reporting(E_ALL ^ E_NOTICE);