3

我正在开发一个 php 项目,我试图在 Twitter 上发布消息。我有以下代码来验证 twitter,当我在大约 30 分钟前工作时,它工作正常,我可以成功验证,获取我的个人资料图片和用户名,没有任何问题。下面是代码。

function authenticate($oauth_token)
        {
            require ("../../../libraries/twitterLib/secret.php");
            $twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
            $twitterObj->setToken($oauth_token);

            $token = $twitterObj->getAccessToken();
            $twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);
            $_SESSION['ot'] = $token->oauth_token;
            $_SESSION['ots'] = $token->oauth_token_secret;
            $twitterInfo = $twitterObj->get_accountVerify_credentials();
            echo "<pre>";
            print_r($twitterInfo->response);
            echo "</pre>";
            $username = $twitterInfo->screen_name;
            $profilePic = $twitterInfo->profile_image_url;

            echo $this->addToDatabase($username, $profilePic, $token, $_GET['oauth_verifier']);
        }

一旦这工作正常,我然后尝试发布一条消息,但收到Sorry, that page does not exist错误代码 34。我以为我只是在发布时遇到问题,但后来我尝试删除我的 oauth 令牌并重新验证,现在上面的代码工作了一半一小时前不再工作,我得到以下输出

Array
(
    [errors] => Array
        (
            [0] => Array
                (
                    [message] => Sorry, that page does not exist
                    [code] => 34
                )

        )

)

我不明白为什么当它刚刚工作时我突然得到这个,而现在却没有,这部分代码自从它工作以来就没有改变。

感谢您的任何帮助,您可以提供。

4

2 回答 2

2

我已经通过更改 EpiTwitter.php 上的 API 连接 URL 解决了这个问题:

class EpiTwitter extends EpiOAuth
{
  const EPITWITTER_SIGNATURE_METHOD = 'HMAC-SHA1';
  protected $requestTokenUrl= 'https://api.twitter.com/oauth/request_token';
  protected $accessTokenUrl = 'https://api.twitter.com/oauth/access_token';
  protected $authorizeUrl   = 'https://api.twitter.com/oauth/authorize';
  protected $authenticateUrl= 'https://api.twitter.com/oauth/authenticate';
  protected $apiUrl         = 'https://api.twitter.com';
  protected $searchUrl      = 'http://search.twitter.com';

无论如何,您最好从https://github.com/jmathai/twitter-async/tree更新文件

于 2012-10-10T22:40:29.617 回答
2

对于Twitter 搜索,我发现我们无法再通过https://api.twitter.com/1/search.json发送搜索请求。

需要使用https://api.twitter.com/1.1/search/tweets.json代替。

于 2012-10-11T10:55:47.547 回答