2016-02-06 132 views
0

我想使用GET状态获取推文列表/ home_timeline。我的资源网址没有任何附加参数。当我发送请求时,出现错误禁止。的代码如下向Twitter API发送请求时出现禁止(错误403)

public async Task<BindableCollection<Tweet>> Execute() 
    { 
     string uri = "https://api.twitter.com/1.1/statuses/home_timeline.json"; 

     HttpClient client = new HttpClient(); 
     client.DefaultRequestHeaders.Add("Host", "api.twitter.com"); 
     client.DefaultRequestHeaders.Add("Authorization", info.TokenType + ' ' + info.AccessToken); 

     HttpResponseMessage responce = new HttpResponseMessage(); 

     while (true) 
     { 
      try 
      { 
       responce = await client.GetAsync(uri); 
       break; 
      } 
      catch { Debug.WriteLine("ERROR!"); } 
     } 

info.TokenTypeinfo.AccessToken的一部分包含“承载”我的访问令牌 依据。 Appropriate photo

当我发送请求(GET状态/ USER_timeline)这个参数(TokenType和的accessToken)我得到了正确的答案。

对此的任何想法?

回答

1

HOME_timeline需要用户身份验证,而不是应用程序身份验证,它可以与User_timeline一起使用。您是否使用应用程序凭据进行身份验证?

the docs

“由于只有应用程序认证,就没有通过身份验证的用户的上下文中,这意味着,到API的任何请求,要求用户上下文端点,如张贴鸣叫,不会但是,仍然可用的一组端点可能会有更高的速率限制。“

1

正如伊恩纳尔逊所说,你需要一个授权才能访问你的时间表。但是您可以使用LinqToTwitter获取推文列表。

var tweets = from tweet in twitterContext.Status 
       where tweet.Type == StatusType.User 
         && tweet.ScreenName == "Goofy" 
       select tweet; 
+0

所以我不能在我的应用程序中使用Application-only认证来获得'home_timeline'。但我想获得home_timeline,我该如何做到这一点? – MAXIMAN

+0

@MAXIMAN你可以下载演示,并在维基上有文档。尝试SingleUserAuthorizer并从您的Twitter应用程序页面获取AccessToken/AccessTokenSecret:https://github.com/JoeMayo/LinqToTwitter –

0

您需要区分HomeTimeline和UserTimeline。

  • HomeTimeline是当前通过身份验证的用户的时间线,因此您必须具有用户特定的身份验证。
  • UserTimeline是特定用户的公共时间线,您可以使用纯应用程序认证。

Tweetinvi给出了一个非常直接进入这两个:

var tweets = Timeline.GetHomeTimeline(); 
// OR 
var tweets = Timeline.GetUserTimeline(<user_identifier>); 

Timeline documentation

为了验证你还需要1线:

// User authentication 
Auth.SetUserCredentials("CONSUMER_KEY", "CONSUMER_SECRET", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET"); 
// Application-Only authentication 
Auth.SetApplicationOnlyCredentials("CONSUMER_KEY", "CONSUMER_SECRET", true); 

Authentication documentation

让我知道这是否有任何帮助。

相关问题