【问题标题】:twitter oauth :geting undefined index: oauth_token_secret intwitter oauth:获取未定义的索引:oauth_token_secret in
【发布时间】:2011-04-19 05:34:12
【问题描述】:

您好我正在尝试使用 oauth (PHP) 发布推文

我在我的 Twitter 帐户中创建了应用程序,

我执行了一些开源脚本,但产生了以下错误,

Notice: Undefined index: oauth_token_secret in

如何解决这个问题

我的sn-p

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

【问题讨论】:

  • 您不需要 require_once('twitterOAuth/OAuth.php');,因为 twitteroauth.php 已经需要它了。 twitter.com/oauth/request_token 是 $request_token 的实际价值吗?
  • 我刚刚评论了 require_once('twitterOAuth/OAuth.php'); 行,仍然出现同样的错误,接下来我该怎么办
  • 请求令牌/秘密是一种使用令牌,因此不应将它们硬编码到您的代码中。

标签: php oauth twitter twitter-oauth


【解决方案1】:

在您的 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 的应用程序。

【讨论】:

  • 谢谢,这为我省去了很多麻烦。
【解决方案2】:

我有同样的错误:

注意:未定义索引:oauth_token 在 /web/htdocs/www.xxx.com/home/private/libraries> /twitteroauth/twitteroauth.php 第 118 行

注意:未定义索引:/web/htdocs/www.xxx.com/home/private/libraries/twitteroauth/twitteroauth.php 第 118 行中的 oauth_token_secret

在线调试指定的错误:

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#comment-36618

为糟糕的英语道歉。

【讨论】:

【解决方案3】:

请检查 php 组件:

  • 卷曲 SSL
  • 打开 SSL
  • hash_hmac

【讨论】:

    【解决方案4】:

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

    希望对你有所帮助..

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 如果您想进一步澄清,请告诉我
      • 它是什么:简单?或详细说明?
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

          这只是一个通知。

          你没有定义那个数组索引什么的。粘贴您的完整错误以及 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

          【讨论】:

          • 我认为您在 Twitter 的回复中没有得到 oauth_token_secret。查看 john misoskian 的建议,可能某些扩展未安装在您的 php 中,或者 twitter 可能会为您的请求返回一些错误信息,您可以从 twitter 类中获取这些信息。
          • 尝试打印_r($oauth);在此调用之后: $oauth->getAccessToken();也许你会在推特回复中看到一些错误。
          • 你也可以试试 var_dump($oauth->http_code);查看 twitter 正在返回哪个响应代码。 dev.twitter.com/pages/responses_errors
          猜你喜欢
          • 1970-01-01
          • 2010-12-31
          • 1970-01-01
          • 1970-01-01
          • 2018-02-25
          • 2011-11-14
          • 1970-01-01
          • 1970-01-01
          • 2013-03-16
          相关资源
          最近更新 更多