【发布时间】:2013-06-26 09:51:04
【问题描述】:
几天来,我一直致力于从 v 1 升级到 1.1。我有 100 多个用户在我的仪表板中看不到他们的关注者。 我按照所有步骤将 /1/ 更改为 /1.1/ 仍然无法正常工作。
收到错误 404(未找到) 控制器:
function twitter_auth()
{
if ( !$this->tweet->logged_in() )
{
die('some how you are not logged in');
}
$tokens = $this->tweet->get_tokens();
$this->tweet->enable_debug(TRUE);
$user = $this->tweet->call('get', 'account/verify_credentials');
var_dump($user);
}
$options = array(
'count' => 10,
'page' => 2,
'include_entities' => 1
);
$timeline = $this->tweet->call('get', 'statuses/home_timeline');
var_dump($timeline);
}
工作:
function get_twitter_subscribers($args)
{
$rate = @file_get_contents('http://api.twitter.com/1.1/application/rate_limit_status.json');
$rate = @json_decode($rate);
if($rate->remaining_hits == 0):
$status = 'retask';
else:
$new_data = @file_get_contents('http://api.twitter.com/1.1/users/show.json? screen_name='.$args['account_id'].'&include_entities=true');
$new_data = @json_decode($new_data);
if(isset($new_data->followers_count)){
$insert_args = array(
'account_id' => $args['account_id'],
'metric' => 'subscribers',
'value' => $new_data->followers_count,
'platform' => 'twitter'
);
$insert = $this->CI->metrics_model->insert_metric($insert_args);
if (isset($insert)) { $status = 'complete'; }
}else{
$this->send_error_email("Function: get_twitter_subscribers - new_data->followers_count not set for account id: " . $args['account_id'] . "\r\n\r\n" . "args: " . http_build_query($args) . "\r\n\r\n" . 'http://api.twitter.com/1.1/users/show.json?screen_name='.$args['account_id'].'&include_entities=true');
}
endif;
if(!isset($status)){
$this->send_error_email("Function: get_twitter_subscribers - status not set." . "\r\n\r\n" . "args: " . http_build_query($args) . "\r\n\r\n" . 'http://api.twitter.com/1.1/users/show.json? screen_name='.$args['account_id'].'&include_entities=true');
$status = 'error';
}
return $status;
控制器:
function auth($platform)
{
if($platform == 'facebook'):
echo 'auth facebook';
elseif($platform == 'twitter'):
$this->load->library('tweet');
// current key in php page
$tokens = array(
'oauth_token' => 'xxxxxxxxxxxxx',
'oauth_token_secret' => 'xxxxxxxxxxxx'
);
$this->tweet->set_tokens($tokens);
if ( !$this->tweet->logged_in() ) :
$this->tweet->set_callback(site_url('manage/auth/twitter'));
$this->tweet->login();
else:
echo 'Twitter logged in. <a href="/manage/">Return to manager</a>';
endif;
endif;
}
我做错了什么?
【问题讨论】:
-
您正在使用哪个 twitterApi 库?也许你也需要升级它。在 v 1.1 中,您不能只做
$new_data = @file_get_contents('http://api.twitter...,无论您做什么都需要授权。 -
这是一个自定义构建的应用程序,codeigniter。 auth_token 和 oauth_toaken_secret 用户名和密码存储在数据库中。在升级到 twitter api 1.1 之前一切正常。我没有改变其他任何东西。 $new_data = @file_get_contents('api.twitter.. 这在 twitter api 版本 1 中运行良好,它在 1.1 中发生了变化,我一定遗漏了一些小东西,我检查了整个 twitter 帮助文档,什么都没有。
-
这个:
$this->load->library('tweet'),你自己创建tweet库?就像我说的,在 twitter API v1.1 中,您需要授权才能获取所有内容。 -
它是由以前的开发人员创建的,好的,让我在开发者 Twitter 上查看有关此主题的说明,以获取有关如何执行此操作的说明。
-
dev.twitter.com/blog/changes-coming-to-twitter-api 需要联系之前的开发者。 :D
标签: codeigniter twitter http-status-code-404 getjson dashboard