我一直堅持這一段時間。有誰知道如何使用OAuth驗證Twitter Streaming API請求?截至目前,我通過基本身份驗證進行身份驗證,並且我想完全切換到OAuth。另外,如果有幫助,我使用Ruby on Rails。Twitter使用OAuth流媒體API?
感謝
我一直堅持這一段時間。有誰知道如何使用OAuth驗證Twitter Streaming API請求?截至目前,我通過基本身份驗證進行身份驗證,並且我想完全切換到OAuth。另外,如果有幫助,我使用Ruby on Rails。Twitter使用OAuth流媒體API?
感謝
連接到通過OAuth Twitter的流API完成大部分相同,通過REST API連接。假設您已經協商了一個訪問令牌,您可以使用與REST請求相同的簽名算法簽署和發出請求。使用Streaming API時,最好使用基於頭的OAuth,而不是基於查詢字符串。
下面是樣品終點簽名基於OAuth的請求的例子:
GET http://stream.twitter.com/1/statuses/sample.json
簽名基本字符串例子:
GET & HTTP%3A%2F%2Fstream .twitter.com%2Fstatuses%2Fsample.json & oauth_consumer_key%3Dri8JxYK2ddwSV5xIUfNNvQ%26oauth_nonce%3DUJb0f3nHhFQkpkWkJzxnFT65xX1TZeuGjww6Q2XWs4%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1306947138%26oauth_token% 3D819797-torCkTs0XK7H2Y2i1ee5iofqkMC4p7aayeEXRTmlw%26oauth_version%3D1.0
認證頭簽署後:
授權:OAuth的oauth_consumer_key = 「ri8JxYK2ddwSV5xIUfNNvQ」,oauth_nonce = 「UJb0f3nHhFQkpkWkJzxnFT65xX1TZeuGjww6Q2XWs4」,oauth_signature = 「bN14zlBIdCZCSl9%2B8UV8dB2VWjI%3D」,oauth_signature_method = 「HMAC-SHA1」,oauth_timestamp = 「1306947138」,組oauth_token = 「819797-torCkTs0XK7H2Y2i1ee5iofqkMC4p7aayeEXRTmlw」,oauth_version = 「1.0」
馬特哈里斯在PHP一些示例代碼通過OAuth展示連接到流API:https://github.com/themattharris/tmhOAuth/blob/master/examples/streaming.php
嘗試OmniAuth寶石你http://dev.twitter.com註冊您的應用程序後,支持多種外部供應商https://github.com/intridea/omniauth
這是它是如何在Perl
完成:
#!/usr/bin/perl
use strict;
use AnyEvent::Twitter::Stream;
if ($ENV{FIREHOSE_SERVER}) {
$AnyEvent::Twitter::Stream::STREAMING_SERVER = $ENV{FIREHOSE_SERVER};
}
my $done = AE::cv;
binmode STDOUT, ":utf8";
my $streamer = AnyEvent::Twitter::Stream->new(
consumer_key => 'KEY',
consumer_secret => 'SECRET',
token => 'TOKEN',
token_secret => 'TOKEN SECRET',
method => "filter",
track => "KEYWORDS TO TRACK",
on_tweet => sub {
# CUSTOM CODE HERE
},
on_error => sub {
my $error = shift;
warn "ERROR: $error";
$done->send;
},
on_eof => sub {
$done->send;
},
);
$done->recv;
你應該使用這個寶石:Tweetstream它坐落在頂部em-twitter
嗨,我看着你的答案,現在我明白如何構建基本字符串和授權標題。然而,現在我被困在如何將數據正確地發佈到ruby的Twitter流中。截至目前,我正在使用yajl創建一個httpstream,只使用基本身份驗證發佈到Twitter流。 – 2011-06-02 18:53:19