2016-02-06 131 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

讓我知道這是否有任何幫助。

相關問題