4

在我的网站上,用户在注册时输入他们的 Twitter 用户名,他们的时间线嵌入在他们的个人资料页面中。到目前为止,我已经使用以下 JavaScript 代码实现了这一点:

<script type="text/javascript">

    var twitterUsername = // read from database

    new TWTR.Widget({
        version: 2,
        type: 'profile',
        rpp: 4,
        interval: 30000,
        width: 'auto',
        height: 210,

        features: {
            scrollbar: true,
            loop: false,
            live: false,
            behavior: 'all'
        }
    }).render().setUser(twitterUsername).start();
</script>

最近我注意到 JavaScript 控制台中出现以下消息

推特小工具:此小工具已被弃用,并将很快停止运行。https://twitter.com/support/status/307211042121973760

推特小工具:您可以从https://twitter.com/settings/widgets/new/user?screen_name=electricpicnic获取新的升级小工具

看来,我应该使用嵌入式时间线,而不是使用这个小部件。但是,文档似乎建议为了在页面中嵌入时间线,您需要转到设置页面的小部件部分,并为您希望嵌入其时间线的每个用户设置一个小部件。Twitter 为您提供了将在您的页面中嵌入此时间线的代码,但此代码包含一个属性,该属性data-widget-id="275025608696795138"对每个用户具有不同的值。

显然,这种方法对我不起作用,因为我无法为我的所有用户(现在和未来)设置一个小部件并为每个用户存储一个小部件data-widget-id。是否有一些不推荐的方式可以嵌入时间线,允许我在运行时提供 Twitter 用户名?

更新

根据Twitter 开发讨论组中的这篇文章,此功能目前不可用,但将在未来版本中提供。

4

4 回答 4

2

Twitter 正在弃用他们未经身份验证的小部件。您将无法再使用这些。

但是 Twitter 有一个您可以调用的 API,您可以生成自己的自定义推文时间线 UI,而无需使用它们的小部件。有关 UI 的示例,请参阅http://tweet.seaofclouds.com/

但是你也必须知道你不能直接从 Javascript 调用他们的 API,因为他们的 API 有 OAuth。您只能从服务器端代码调用他们的 API(我不知道您现在使用的是什么,PHP/Ruby/Python/Java?)。好消息是,OAuth 是一个开放标准,您可以使用任何语言调用他们的 API。这是相同小部件的示例,但它通过使用 PHP 调用 API 来获取数据。这是一个长期的解决方案。

如果 Twitter 时间线对您的网站至关重要 - 那么您必须采用 API 方式。您必须在 Twitter 上注册您的站点,然后使用 OAuth 获取用户的时间线数据,并使用该数据呈现 javascript 小部件。

于 2013-05-24T23:44:35.090 回答
1

使用新的 Twitter 小部件,只需从您自己的帐户(例如 YourName)创建一个经过身份验证的 Twitter 小部件。然后设置你想要显示的用户的数据屏幕名称(例如'twitterUsername'),你最终会得到这样的结果:

<a class='twitter-timeline'  href='https://twitter.com/YourName'  
   data-widget-id='your-widget-id' 
   data-screen-name='twitterUsername'>Tweets by @twitterUsername</a>

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)  [0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script>
于 2014-02-07T15:06:06.017 回答
0

这是一些 javascript,您可以使用它来在网页中嵌入用户的时间线

添加脚本https://www.tweetjs.com/tweetjs.js

然后添加代码:

   TweetJs.ListTweetsOnUserTimeline("PetrucciMusic",
    function (tweets) {
        for(var i in tweets)
        {
            document.write(tweets[i].text + "<br>");
        }
    });

...虽然我建议使用比这更好的样式:)

于 2019-08-01T18:00:02.587 回答
-1

我就是这样用的,感觉还不错。

HTML:

    <ul id="twitter_update_list">
    </ul>

脚本:

<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
<script type="text/javascript" src="https://api.twitter.com/1/statuses/user_timeline.json?screen_name=theunexpected1&callback=twitterCallback2&count=10"></script>

注意发送到脚本的“screen_name”变量。您可以自定义回调函数(blogger.js),也可以将此文件保存在本地以避免外部请求。

希望这是有用的。

作为参考,我在这里创建了一个jsfiddle,您也可以从那里获取 CSS 片段。 http://jsfiddle.net/rahulsv/8fRTD/

更新:

自从 Twitter 更新到 v1.2 后,此解决方案不再有效 - 禁止未经授权访问推文。

于 2013-05-28T07:49:11.120 回答