2017-07-24 163 views
0

在這一個需要大量的幫助。基本上在我的應用程序中,我需要訪問twitter api,根據特定搜索標記獲取前50個帖子並顯示它們。自然,認證的議程就進入了。現在這給我帶來了嚴重的麻煩。我的代碼看起來並不起作用,因爲 - 驗證數據錯誤[215]。我使用TweetSharp包來組成我的代碼。Twitter API [1.1]身份驗證請求 -

我將它張貼在這裏 -

public class TweetHelper 
    public class TweetHelper 
    { 
     public static string _consumerKey = "whatever"; 
     public static string _consumerSecret = "whatever"; 
     public static string _accessToken = "whatever"; 
     public static string _accessTokenSecret = "whatever"; 

public static List<TwitterStatus> GetTweetList1() 
    { 
     TwitterService twitterService = new TwitterService(_consumerKey, _consumerSecret); 
     int tweetcount = 1; 

----> VAR tweets_search = twitterService.Search(新SearchOptions {Q = 「#ClimateChange」,與resultType = TwitterSearchResultType.Popular,數= 50 }); ----> twitterService.AuthenticateWith(_accessToken,_accessTokenSecret);

 List<TwitterStatus> resultList = new List<TwitterStatus>(tweets_search.Statuses); 
     foreach (var tweet in tweets_search.Statuses) 
     { 
      try 
      { 
       tweet.User.ScreenName.ToString(); 
       tweet.User.Name.ToString(); 
       tweet.Text.ToString(); 
       tweet.RetweetCount.ToString(); 
       tweet.User.FavouritesCount.ToString(); 
       tweet.User.ProfileImageUrl.ToString(); 
       tweet.CreatedDate.ToString(); 
       ("https://twitter.com/intent/retweet?tweet_id=" + tweet.Id).ToString(); 
       ("https://twitter.com/intent/tweet?in_reply_to=" + tweet.Id).ToString(); 
       ("https://twitter.com/intent/favorite?tweet_id=" + tweet.Id).ToString(); 

       tweetcount++; 
      } 
      catch (Exception exp) 
      { 
       throw exp; 
      } 
     } 
     return resultList; 


    } 

} 

我知道1.0 API版本已被twitter棄用。而2.0還沒有到來。所以它必須是1.1。正如你所看到的那樣,這兩個問題是錯誤發生的地方。我究竟做錯了什麼?或者,我誤解了API版本中的哪些信息?它不可能是所有這些密鑰和令牌,祕密等都是錯誤的。我正確地複製了它們,同時創建了我的應用程序。還有一件事是,我正在嘗試從我的開發人員那裏獲得。我的本地機器上的環境;在那裏我做了一個Windows主機文件的編輯,使我的應用程序能夠從該特定的IP地址運行,並表現得像一個確定的URL。我也使用這個,同時在創建twitter應用程序的過程中填寫網站,域等信息。

我用休息客戶郵遞員和所有交叉檢查api請求的東西。是的,它確實返回了215個錯誤的AU認證數據。有人告訴我,這可能是由於我的電腦上的時鐘不能與互聯網同步。所以我只是爲了確保。依然沒有。我真的很鬱悶。請在這個問題上幫助我。我發現很難過去。 在此先感謝,

+0

您的代碼格式不正確,因此很難確定,但在進行搜索調用後,您似乎正在調用AuthenticateWith *。這是行不通的,如果你想搜索一個給定的用戶,你需要首先調用AuthenticateWith。 但是,如果您的消費者令牌是正確的,那麼您所做的搜索調用*應該*仍然有效,只是您將只搜索沒有關注者上下文的公共推文。 你確定你的消費者密鑰和祕密是正確的嗎?前端/末端沒有額外的空間? Twitter API提供的內容沒有變化? – Yort

+0

您是否還在使用TweetSharp的當前版本?原始/官方的Nuget軟件包不再被支持,並且有已知的錯誤(儘管沒有這種症狀AFAIK)。 TweetSharpAlternative或TweetMoaSharp應該都是最新的。 – Yort

+0

Hi @Yort 非常感謝您的回覆。是的,我打算搜索並顯示公共推文[基於標籤]。我仍然會移動這兩條線並再次檢查。另外我會仔細檢查我複製的密鑰和祕密。我不知道TweetSharp的這個問題。是的,我使用nuget包管理器添加了它,所以我認爲它只添加了最新的,最新的穩定版。你認爲我應該去與其他兩個呢?感覺如此卡住。 –

回答

0

您似乎要呼叫AuthenticateWith 進行搜索調用。這是行不通的,如果你想搜索一個給定的用戶,你需要首先調用AuthenticateWith。

您是否還在使用TweetSharp的當前版本?原始/正式塊金包不再被支持,並且具有已知的錯誤,特別是在長整型處理的情況下。

+0

Hi @Yort 是的,現在工作正常。安裝TweetMoaSharp。並做了一些代碼編輯。數據正在顯示。不過,我想要做更多的改進;我不知道確切的代碼/包信息。例如。 TwitterStatus.Author沒有顯示推文作者的姓名。我想在我的應用程序中顯示。你能告訴我,我該怎麼做。 –

+0

您是否嘗試過status.User而不是status.Author?這有一個名字嗎?如果您檢查顯示Twitter返回的原始json狀態的Raw屬性,那麼它是否具有Author或User下的名稱? – Yort

+0

Hi @Yort 我檢查過了。實際上Author和User都包含高音單元的名稱。只是不明白爲什麼這表現異常。另外還有一點特殊之處:任何時候,除了英語以外的其他語言都有推文,假設印度語或日語或斯里蘭卡語,代碼會拋出異常 - 索引超出限制。這也很奇怪。 :O –