2013-02-21 60 views
0

我在我的网站JSON,Twitter API和Javascript上显示一条推文。推文显示在我的主页上,但不在任何子页面上。在子页面上,我得到了JSON调用中的401(未授权)错误。有没有办法来解决这个问题?这里是我的脚本:Twitter JSON调用仅适用于主页

(function($){ 
    $.fn.tweets = function(options) { 
     $.ajaxSetup({ cache: true }); 
     var defaults = { 
      tweets: 1, 
      before: "<span>", 
      after: "</span>" 
     }; 
     var optionsWithDefaults = $.extend(defaults, options); 
     return this.each(function() { 
      var obj = $(this); 
      $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?callback=?&screen_name='+optionsWithDefaults.username+'&count=' + optionsWithDefaults.tweets, 
       function(data) { 
        $.each(data, function(i, tweet) { 
         if(tweet.text !== undefined) { 
          $(obj).append(optionsWithDefaults.before+tweet.text+optionsWithDefaults.after); 
         } 
        }); 
       } 
      ); 
     }); 
    }; 
})(jQuery); 
+0

很难说,不知道页面之间有什么不同。 jQuery实际上是否包含在所有页面中?你是否在其他页面上传递适当的选项? – 2013-02-21 16:40:41

+0

页面之间没有什么不同。是的,jQuery包含在所有页面中。这些选项在页面之间不会更改,因为脚本在每个页面上都是相同的页脚中调用。 – user715564 2013-02-21 17:01:33

回答

0

如果您收到来自Twitter的API一个401 Unauthorized HTTP错误就意味着你正在试图访问API的某些部分需要用户身份验证(见Error Codes & Responses)。

由于您没有指定其他页面中的不同之处,因此我认为您试图请求与搜索范例不同的内容。对于那些需要获得授权的请求。要了解有关如何授权用户的更多信息,我建议您查看Implementing Sign in with Twitter

+0

没什么不同。任何页面上唯一发生的事情就是显示最近的推文。没有搜索或任何其他API相关。没有任何事情需要授权。 – user715564 2013-02-21 17:00:20

+0

@ user715564那为什么不使用[Embedded Timelines](https://dev.twitter.com/docs/embedded-timelines)呢? – 2013-02-21 17:04:15

+0

因为我不想要嵌入时间线的UI。我需要做的就是显示推文的文字。 – user715564 2013-02-21 18:14:40