2014-06-11 63 views
0

我能找到的每個示例都非常過時,或者總是返回401. 任何人都可以提供發佈狀態更新到twitter的工作示例嗎?使用c發佈狀態更新到twitter#

即使下面也總是失敗。 我被重定向到Twitter - 很棒。我可以confrim的訪問代碼是正確的,並匹配我的應用程序,但在acutally發佈更新 - 錯誤是未知的...

這到底是什麼錯?無論我使用哪個應用程序或哪個Twitter帳戶。

使用Twitteriser2.dll

if (Request["oauth_token"] == null) 
     { 
      OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(
       oauth_consumer_key, 
       oauth_consumer_secret, 
       Request.Url.AbsoluteUri); 

      Response.Redirect(string.Format("http://twitter.com/oauth/authorize?oauth_token={0}", 
       reqToken.Token)); 
     } 
     else 
     { 
      string requestToken = Request["oauth_token"].ToString(); 
      string pin = Request["oauth_verifier"].ToString(); 

      var tokens = OAuthUtility.GetAccessToken(
       oauth_consumer_key, 
       oauth_consumer_secret, 
       requestToken, 
       pin); 

      OAuthTokens accesstoken = new OAuthTokens() 
      { 
       AccessToken = tokens.Token, 
       AccessTokenSecret = tokens.TokenSecret, 
       ConsumerKey = oauth_consumer_key, 
       ConsumerSecret = oauth_consumer_secret 
      }; 

      TwitterResponse<TwitterStatus> response = TwitterStatus.Update(
       accesstoken, 
       "Testing!! It works (hopefully)."); 

      if (response.Result == RequestResult.Success) 
      { 
       Response.Write("we did it!"); 
      } 
      else 
      { 
       Response.Write("it's all bad."); 
      } 
     } 
+1

不幸的是,你可能會很難得到這個答案。說實話,社交網絡討厭這種類型的自動化,Pinterest幾乎不可能登錄和POST。您可能想要尋找更好的解決方案,如Selenium或PhantomJS。 –

+0

Twitter爲這類事情提供了一個API和文檔。 – DWRoelands

回答

0

最終得到它的工作。 故障並不完全知道,因爲我沒有更改代碼,但我所做的是重新下載Twitterizwer並將其構建(因爲某種原因需要添加引用到C++組件),然後它可以工作,因此我可以只是看到它第一次出現故障。

0

的TwitterRepsonse對象具有一個 「的ErrorMessage」 屬性。你應該先看看裏面的信息,給你一些指導。

+0

它真的回來了,出現錯誤未知 –

+0

在這種情況下,你將不得不找到一種方法來攔截從Twitter返回的響應。我有兩個建議。首先:下載Twitterizer源代碼並將其編譯到您的應用程序中,然後逐步瀏覽Twitterizer源代碼,直到找到收到響應的地方並查看Twitter實際上正在說的內容。這可能是你最好的選擇。另一種選擇是使用像Fiddler這樣的工具來捕獲http響應並以這種方式來看待它。 – DWRoelands

0

你爲什麼不使用Tweetinvi。 Tweetinvi將允許您在1行中發佈並獲取錯誤消息。這是一個例子。

TwitterCredentials.SetCredentials("Access_Token", "Access_Token_Secret", "Consumer_Key", "Consumer_Secret"); 
var tweet = Tweet.PublishTweet("Hello!"); 

if (tweet == null) 
{ 
    var exceptionDetails = ExceptionHandler.GetLastException().TwitterExceptionInfos.First().Message; 
} 

您可以在這裏找到的文檔:https://tweetinvi.codeplex.com/documentation

也看看https://tweetinvi.codeplex.com/discussions/536895如果您正在使用ASP.NET使用它。