我試圖創建一個基於Ruby的Twitter客戶端,我可以通過命令行使用Ruby後我的狀態。我現在想了解oauth,這讓我有點困惑。如果我正在構建Web應用程序,那麼當請求令牌完成時,我可以提供一個回調URL。我將如何從命令行執行該操作?我不希望紅寶石打印出授權,並複製並粘貼網址,然後點擊'允許'獲取令牌。我發現了一些關於帶外交換或PIN的內容。我將如何使用紅寶石中的OAuth庫做到這一點,非常感謝。Ruby的Twitter客戶端
回答
要使用回調URL機制,你的應用程序應該是一個web application
。看來你正在開發desktop application
,如果是那樣的話,你應該通過提供「OOB」(出帶外)當你請求令牌的oauth_callback_url
遵循「PIN碼」流動。像這樣,
https://api.twitter.com/oauth/request_token? oauth_callback = OOB
如果你正確設置這個HTTP請求的報頭(設置HTTP報頭的OAuth的重要組成部分,我想你已經知道如何做到這一點),微博將給oauth_token
,oauth_token_secret
和oauth_verifier
。我們稱這個標記爲"request_token"
。你需要它以後得到"access_token"
。
一旦你有request_token
,你需要用下面的網址
http://api.twitter.com/oauth/authorize?oauth_token=request_token
這將打開授權頁面,讓用戶打開網頁,以決定是否對用戶想讓您的應用程序訪問他或她的Twitter帳戶。如果使用說沒事,然後推特給PIN碼。您需要允許用戶輸入PIN碼以便保存。
現在,是時候通過使用您的comsumer_key/secret
,request_token
和PIN code
來獲得另一個令牌("access_token"
)。你應該正確設置標題與所有這些值,並用這個網址再做一次HTTP請求,
如果Twitter接受你的「的access_token」請求時,它會給你oauth_token
,oauth_token_secret
,user_id
和screen_name
。我們稱這個令牌爲"access_token"
。現在,您可以通過使用access_token
和its secret (oauth_token_secret)
執行所需的Twitter的API任何的OAuth。您可以將這兩個值保存在文件中,並在需要訪問用戶的Twitter帳戶時繼續使用它們。在用戶撤銷對應用程序的訪問權限之前,這些值將始終有效。
我不知道Ruby,但如果你知道如何在Ruby的自定義標題進行HTTP/HTTPS請求(GET/POST),如果你仔細按照Twitter的API文檔這個PIN碼流應該可以正常工作。祝你好運!
它會要求輸入PIN碼,直到你得到的請求令牌時指定oauth_callback,轉發用戶授權URL
@consumer =的OAuth :: Consumer.new( TWITTER_CONSUMER_KEY 不能當, TWITTER_CONSUMER_SECRET, {:站點=> 「https://api.twitter.com」})
@request_token = @ consumer.get_request_token(:oauth_callback => CALLBACK_URL)
這是衝浪幾個小時的不完整文檔的結果。
使用Twitter的寶石,它會讓你更容易。 http://rdoc.info/gems/tweeter/2.0.0/frames
- 1. 基本的twitter客戶端
- 2. 與twitter客戶端的android twitter集成
- 3. Ruby github客戶端
- 4. Android SDK Twitter客戶端
- 5. Twitter流API - Erlang客戶端
- 6. Ruby的SignalR客戶端
- 7. Ruby SCGI/XMLRPC客戶端
- 8. 好ruby irc客戶端庫
- 9. riak ruby客戶端超時
- 10. 使用Ruby CKAN客戶端?
- 11. Ruby on Rails SPARQL客戶端
- 12. Twitter客戶端中的JSON異常
- 13. Twitter客戶端的Oauth Athentication爲Android
- 14. ruby - zeromq檢測到客戶端超時,但客戶端掛起
- 15. 使用客戶端證書與twitter finagle
- 16. twitter hosebird客戶端maven用法
- 17. Objective C Twitter客戶端幫助!
- 18. 製作twitter單聲道客戶端
- 19. twitter hosebird客戶端不工作
- 20. 在twitter類客戶端重用UITableViewCell(每個客戶端的自定義高度)
- 21. ruby中的客戶端http代理
- 22. Ruby中兼容Java的REST客戶端
- 23. 使用SAVON的Ruby SOAP客戶端不工作,而PHP SOAP客戶端工作
- 24. 用於Twitter的HTML/jQuery客戶端和PHP後端oAuth
- 25. 如何運行Prometheus Ruby客戶端
- 26. Ruby客戶端訪問Ebay API
- 27. 許多客戶端連接Ruby
- 28. Ruby tcpserver客戶端服務器
- 29. Ruby休息客戶端持久性Cookie
- 30. 用Ruby控制Tor客戶端
我只想說明一點,如果你想創建一個單獨使用的twitter客戶端或者只是一個單用戶應用程序,你可以使用My Access Token,它已經從http://dev.twitter .COM /應用程序。所以,我不必擔心OAuth。 – toy 2011-02-27 22:23:18