0

您好我正在尝试使用 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
4

8 回答 8

3

在您的 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

但是通过从 php 脚本设置回调 url,它将覆盖回调 url 的默认占位符,并将您的应用程序视为基于 Web 的应用程序。

于 2014-04-21T11:47:00.300 回答
2

我有同样的错误:

注意:未定义的索引: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

为糟糕的英语道歉。

于 2013-04-25T21:00:26.480 回答
1

请检查 php 组件:

  • 卷曲 SSL
  • 打开 SSL
  • hash_hmac
于 2010-09-30T08:42:03.393 回答
1

@Bharanikumar
AFAIK 首先你应该调用这个函数

$request_token = $oauth->getRequestToken();  

然后你会得到

$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)

希望对你有帮助..

于 2011-01-21T08:36:06.767 回答
0

我也是这个bug。因为我没有配置 OAUTH_CALLBACK。希望对你有所帮助。

于 2014-01-23T04:47:14.493 回答
0

通过在我的 twitter 应用程序设置中设置回调 URL 为我解决了这个问题。http://dev.twitter.com

于 2013-11-23T17:53:43.310 回答
0

问题是请求中存在错误,因此您在 Twitter 的响应中没有得到 oauth_token_secret。在这里查看一个简单但详尽的解决方案.. http://errorbank.blogspot.com/2012/07/php-twitter-undefined-index.html

于 2012-07-21T05:49:08.693 回答
-2

这只是一个通知。

您没有定义该数组索引或其他内容。粘贴您的完整错误以及 php 写此通知的位置周围的行。

另一种方式:您可以使用以下代码禁用:

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);

http://www.php.net/manual/en/function.error-reporting.php

于 2010-09-30T08:07:24.630 回答