【问题标题】:Twitter Codebird ErrorTwitter Codebird 错误
【发布时间】:2017-02-15 04:03:00
【问题描述】:

我正在尝试使用 codebird 来使用 PHP 发布推文。最初我无法获得访问令牌,但在我在设置中定义 CallbackURL 之后,问题似乎得到了解决。现在它正在返回 oauth 令牌:

Codebird\Codebird 对象 ( [_oauth_token:protected] => codehere [_oauth_token_secret:protected] => codehere [_return_format:protected] => 0 [_supported_media_files:protected ] => 数组 ( [0] => 1 [1] => 2 [2] => 3 ) [_version:protected] => 3.0.0-dev [_use_curl:protected] => 1 [_timeout:protected] = > 10000 [_connectionTimeout:protected] => 3000 )

但是当我尝试发推文时,我收到以下错误:

stdClass Object ( [errors] => Array ( [0] => stdClass Object ( [code] => 89 [消息] => 令牌无效或过期。 ) ) [httpstatus] => 401 [rate] => )

以下是我的代码

Codebird\Codebird::setConsumerKey('copy+paste from twitter', 'copy+paste from twitter'); // I changed it to my   settings

$cb = \Codebird\Codebird::getInstance();

if (! isset($_SESSION['oauth_token'])) {
// get the request token
$reply = $cb->oauth_requestToken(array(
    'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
));

// store the token
$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
$_SESSION['oauth_verify'] = true;

// redirect to auth website
$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();

} elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) {
// verify the token
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
unset($_SESSION['oauth_verify']);

// get the access token
$reply = $cb->oauth_accessToken(array(
    'oauth_verifier' => $_GET['oauth_verifier']
));

// store the token (which is different from the request token!)
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;

// send to same URL, without oauth GET parameters
header('Location: ' . basename(__FILE__));
die();
}

// assign access token on each page load
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
print_r($cb);
$params = array(
  'status' => 'Auto Post on Twitter with PHP http://goo.gl/OZHaQD #php #twitter'
);
$reply = $cb->statuses_update($params);
print_r($reply);

提前感谢您的帮助。

【问题讨论】:

    标签: php twitter twitter-oauth


    【解决方案1】:

    您的回调地址是在应用定义中向 Twitter 注册的地址吗?

    您在应用定义中有“读写”权限吗?

    您是否超出了发帖的速率限制?

    我会先检查这些东西,因为我没有看到您的代码 sn-p 中明显缺少任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-28
      • 2016-02-23
      • 2021-08-29
      • 1970-01-01
      • 2020-12-06
      • 2017-11-13
      • 1970-01-01
      • 2017-01-10
      相关资源
      最近更新 更多