新的Twitter API和Twitter计数+时间线不再起作用

时间:2013-06-13 作者:japanworm

正如你们中的一些人可能知道的,Twitter已经改变了他们的API。

因此,我的一些插件/代码停止工作。我试着自己修复它们,但失败了。我尝试在谷歌上搜索新的API URL,并在这里进行了搜索。我试图插入中提供的URLthis post, 但一旦申请,我只收到一条错误消息。

我需要用新的API更新以下两个代码,但不知道如何更新!

推特关注者计数片段:

function rarst_twitter_user( $username, $field, $display = false ) {
    $interval = 3600;
    $cache = get_option(\'rarst_twitter_user\');
    $url = \'http://api.twitter.com/1/users/show.json?screen_name=\'.urlencode($username);

    if ( false == $cache )
        $cache = array();

    // if first time request add placeholder and force update
    if ( !isset( $cache[$username][$field] ) ) {
        $cache[$username][$field] = NULL;
        $cache[$username][\'lastcheck\'] = 0;
    }

    // if outdated
    if( $cache[$username][\'lastcheck\'] < (time()-$interval) ) {

        // holds decoded JSON data in memory
        static $memorycache;

        if ( isset($memorycache[$username]) ) {
            $data = $memorycache[$username];
        }
        else {
            $result = wp_remote_retrieve_body(wp_remote_request($url));
            $data = json_decode( $result );
            if ( is_object($data) )
                $memorycache[$username] = $data;
        }

        if ( is_object($data) ) {
            // update all fields, known to be requested
            foreach ($cache[$username] as $key => $value)
                if( isset($data->$key) )
                    $cache[$username][$key] = $data->$key;

            $cache[$username][\'lastcheck\'] = time();
        }
        else {
            $cache[$username][\'lastcheck\'] = time()+60;
        }

        update_option( \'rarst_twitter_user\', $cache );
    }

    if ( false != $display )
        echo $cache[$username][$field];
    return $cache[$username][$field];
显示最新推文片段:

function recentTweets($username, $number){ 
 include_once(ABSPATH.WPINC.\'/rss.php\'); 

 $tweet = fetch_feed("http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $number ); 

 if (!is_wp_error( $tweet ) ) : 
 $maxitems = $tweet->get_item_quantity($number);  
 $rss_items = $tweet->get_items(0, $maxitems);  
 endif; 

 if ($maxitems == 0) echo \'<li>No Tweets.</li>\'; 
 else foreach ( $rss_items as $item ) { 

 $content = html_entity_decode($item->get_content()); 
 $link = html_entity_decode($item->get_permalink()); 
 $date = $item->get_date(\'U\'); // retrives the tweets date and time in Unix Epoch terms
 $blogtime = current_time(\'U\'); // retrives the current browser client date and time in Unix Epoch terms
 $dago = human_time_diff($date, $blogtime) . \' ago\'; // calculates and outputs the time past in human readable format

 echo "<li>$content &#8226;<a href=\'$link\'>$dago</a></li>"; 
 } 
}
提前非常感谢您。这是my blog 供参考。

1 个回复
SO网友:JMau

新的Twitter API需要身份验证,您需要转到dev twitter 并创建令牌。看见documentation

你需要使用图书馆。我使用this one

EDIT: 您需要在dev-twitter上创建一个应用程序(这只是一个基本信息,请填写表单),然后才能访问您的令牌。如果您有这些令牌,库将管理与API的连接。

我写了很多关于这方面的文章,但都是用法语写的,所以我怀疑你会读到它们,我不是来做广告的。阅读文章可能是个更好的主意this website

结束

相关推荐

设置API与主题定制器

When would it be appropriate to use the settings API, and when would it be better to use the theme customizer?整个上午我都在google上搜索,没有找到任何经过深思熟虑的和最近关于这件事的指导。虽然现在说还为时尚早,但我觉得主题定制器是引入更多类似方形空间的编辑功能的第一步。有没有人知道有什么计划让设置API落伍,以支持主题定制器?我们应该慢慢地朝着这个方向前进,还是坚持使用设置API更好?他们是