2011-01-19 40 views
4

我想在C#中編寫一個控制檯程序,將Tweet發送到Twitter。我以前從未使用Twitter API,也不知道他們的身份驗證如何工作。我發現了一個名爲Twitterizer的API庫,但它似乎適用於Web應用程序,並希望用戶使用Web瀏覽器登錄。 Twitter網站上的所有API文檔似乎都圍繞着這種情況。如何編寫命令行發佈到Twitter的C#程序

是否有可能使用一個控制檯應用程序沒有web瀏覽器訪問訪問Twitter的API的?對於我想發佈的Twitter用戶的名稱和密碼,我的編碼非常好。謝謝!

Mike

+0

可能的重複:http://stackoverflow.com/questions/1259269/whats-the-best-c-twitter-api-for-a-twitter-bot – 2011-01-19 06:46:28

回答

2

您需要使用OAuth在Twitter中進行身份驗證。

然後使用常規的HTTP請求使用Twitter基於JSON的API。

Here you can find瞭解OAuth,Twitter和控制檯應用程序的好文章。

+0

那麼,這是否意味着控制檯應用程序將彈出一個網頁瀏覽器供用戶登錄?我也不能有這個。 – 2011-01-19 06:56:59

+0

@Mike不,這不是這個意思。 – 2011-01-19 07:24:46

0

當然你可以使用任何通過REST的API連接到Twitter。
你應該http://dev.twitter.com使用OAuth,並設置您的應用程序,那麼你應該閱讀文件中列出的所有文章,你必須指定你的應用程序的客戶端,但沒有瀏覽器,以便用戶輸入的數字,則通過認證獲得。

您可以使用許多庫,這樣就可以節省您的時間,所有人都在文件

,小心,你不應該使用Twitter的自己的API控制檯是越野車上市(因爲我知道參數somtimes不能解析),你應該使用API​​gee,而不是強大而穩定的。

如果你想使用基本身份驗證,你應該使用API​​代理(一個有名的是TWIP),如果你僅僅只需要一個簡單的C#應用​​程序,你必須自己編寫代碼:

  1. 你應該使用指定用戶名和密碼登錄推特,解析傳遞的餅乾
  2. 使用正常的oauth獲取臨時訪問令牌網址。
  3. 使用從第1步獲取的cookies,模擬表單提交以允許您的應用,捕獲PIN碼
  4. 使用PIN碼完成oauth。
  5. 最重要的,你必須存儲訪問令牌在客戶端的計算機,以便下一次你可以在上面繞過步驟
2

還需要很戰利品在linq2twitter庫。從它的文檔;

Twitter API使用 可表示狀態轉移(REST)構建。 Wikipaedia將REST定義爲「... 分佈式超媒體系統的軟件體系結構的風格 ...」, 但我會非常大膽以致力於嘗試 來簡化它的含義。在 實踐中,REST是基於超文本傳輸​​協議(HTTP)構建的Web服務 協議。您可以通過發送HTTP調用使用 URL和獲取文本帶回一些 形式,這往往是XML或JSON使用REST的Web服務 。因此, 如果你寫的是由具有以下網址, HTTP請求代碼:

http://api.twitter.com/1/statuses/public_timeline.xml

你還是會回到一個XML文檔 所有Twitter的狀態從 公開時間表,這是您在請求時最近20條推文 的時間快照 。繼續前進 並打開您的瀏覽器,將 上面的URL複製並粘貼到地址欄 中,然後查看返回的內容。

0

在C#剛剛撰寫了一個Twitter的機器人。這是目前發佈推文到@valuetraderteam

https://gist.github.com/sdesalas/c82b92200816ecc83af1

下GIST的API組件是小於500行,只有依賴是Json.NET,你需要下載或者64位或x86最新的DLL(取決於您靶向什麼平臺)並將其作爲您項目中的參考。

有一個如何你可以從一個控制檯應用程序

使鳴叫頁面底部的例子希望這是其他一些人在那裏有用。