有什么办法从Twitter网址获取Twitter小部件的widget-id?

时间:2013-06-13 19:21:27

标签: javascript html twitter

有没有办法从twitter网址找到推特小工具ID?

用户将把推特网址放在那里,我必须像这样为他们创建小部件

<a class="twitter-timeline" href="https://twitter.com/twitterapi" data-widget-id="YOUR-WIDGET-ID-HERE">Tweets by @twitterapi</a>

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

但要生成这个我需要有小部件ID! data-widget-id="YOUR-WIDGET-ID-HERE"

2 个答案:

答案 0 :(得分:4)

可以通过登录Twitter创建小部件:

  1. 转到:https://twitter.com/settings/widgets
  2. 按“新建”按钮
  3. 填写设置
  4. 点击“创建小部件”按钮
  5. 您的窗口小部件ID将显示在代码文本框中:

    Screencast

答案 1 :(得分:0)

实际上,没有办法自动找到小部件ID,但您可以在PHP中创建一个功能,将twitter嵌入您的网站。

我为开源项目创建了一个简单的插件:

--- // twitter_plugin.php // -----

<?php    
function twitter_page ($search){

    # first we remove unwanted tags, for 
    # security reasons only and remove unwanted space.

    if($search ==""){
        exit;
    } else {
        //echo "<h2>" . $search . "</h2><br>";

        # wikipedia URL
        $url = "https://mobile.twitter.com/" . $search;

        # initialize curl
        $ch = curl_init();

        # Get the user agent of the visitor...

        $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1";
        $_referer ="http://www.google.com"; 

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_USERAGENT,$user_agent);
        curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
        curl_setopt ($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch,CURLOPT_REFERER,$_referer); 
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



        $definition = curl_exec($ch);

        $cellphone = "You are on Twitter Mobile because you are using an old version of Internet Explorer. Learn more";
        $definition = str_replace($cellphone, "More information about Twitter ", $definition);
        $definition = str_replace('href="', ' target="_blank" href="', $definition);
        $definition = str_replace('action="', 'target="_blank" action="https://mobile.twitter.com/', $definition);
        $definition = str_replace("href='", " target='_blank' href='", $definition);
        $definition = str_replace('https://mobile.twitter.com/', 'https://twitter.com/', $definition);
        $definition = str_replace('href="/', 'href="https://twitter.com/', $definition);
        $definition = str_replace('class="tweet-text"', 'class="tweet-text" style="color:rgb(0,0,0);"', $definition);



        $needle = '<div class="w-mediaonebox">';
        $pos = strpos ($definition, $needle);
        $definition=substr($definition,$pos, strlen($definition));



        echo "<div class=\"w-mediaonebox\">\n" . $definition; 


        curl_close($ch);
        echo "</div>";

    } 
}



if(isset($twitter)){

    twitter_page($twitter); 

}

---- // php脚本的结尾// ----

这就是你可以使用插件的方法:

<div style="height:880px; width:550px; overflow:auto; overflow-style:marquee-line;">
<?php
$twitter = 'nova_says';
include_once('include/twitter_plugin.php');
?>
</div>

可以在以下位置找到此插件的演示: http://www.heathernova.us/index-page-405-category-405.html