2009-05-22 17 views
2

"http basic auth"でtwitter apiを使用するには?"http basic auth"でtwitter apiを使うには?

「コンシューマキー」を使用する必要があります。ツイッターが1時間あたりのリクエストの制限率を与えたので、コンシューマーキーを使用しなかった場合、どのようにリクエストをカウントできますか?

答えて

1

私は彼らが同じIPからのリクエストを数えていると思いますが、私は二重チェックしていません。

動的IPアドレスでさえも、セッションでは静的であり、他の識別情報がない場合は、他のユーザーと区別される唯一のものです。

他のポスターによると、あなたが鍵を持っているなら、より良い方法があります。

+0

なぜダウン投票?私は確信がないと言ったが、@ceejayozはそれを確認した。 – ChrisF

+0

ありがとう、私も彼らはIPからの要求を数えると思いますが、あなたの答えを誰が投票したか分かりませんが、私はそれをあきらめますvote.thanks – ahmed

+0

私は投票に落ちる気にしませんが、だから間違ったところで私の答えを訂正することができます。 – ChrisF

1

認証されたAPI GETリクエストは、ユーザーアカウントのカウントに対してカウントされます。

認証されていないAPI GETリクエスト(いくつかの方法で許可されています)は、IPアドレスのカウントに対してカウントされます。

POST要求にはレート制限はありません。

More details are available in the Twitter docs.

+0

あなたのユーザーアカウントの記録に対してカウントされていれば、ありがとうございます。 twitterが私の新しいWebアプリケーション20000リクエストを与えたとき?このリクエストがこのアプリかそのリクエストかどうかをどのように識別しますか?多分消費者キーまたはドメイン名!? – ahmed

+0

ホワイトリストに登録すると(20k req/hr制限を取得するために)、IPアドレスを入力する必要があります。そのIPアドレスからのすべての要求は、ユーザーまたはアプリケーションに関係なく、20k/hrの制限値に対してカウントされます。 –

0

私は最近、これはそれの作動部分であるTwitterの に投稿するためにいくつかのPHPを書いた:

$message = 'A new revision (#' . $data['revision'] . ') was commited by ' . $data['author'] . ': ' . $data['message'] . ""; 

$message = substr($message, 0, 140); 

$content = 'status=' . urlencode($message); 
$packetString = "POST /statuses/update.xml HTTP/1.1\r\n"; 
$packetString .= "Authorization: Basic " . base64_encode($username . ":" . $password) . "\r\n"; 
$packetString .= "Content-Length:" . strlen($content) . "\r\n"; 
$packetString .= "HOST: twitter.com\r\n"; 
$packetString .= "\r\n" . $content . "\r\n"; 

$sock = fsockopen('twitter.com', 80); 
fwrite($sock, $packetString); 
//This is some logging, to a local file so I can monitor local what's going on 
$response = fread($sock, 10240); 
fwrite($fh, $packetString . "\r\n\r\n\r\n" . trim($response) . "\r\n\r\n\r\nD:\r\n" . $d); 
fclose($fh); 

あなたがここにアクションでそれを見ることができます:http://twitter.com/fmsvn私たちのSVNサーバからのコールバックを使用して私はプロジェクトのTwitterフィードにSVNメッセージを投稿しています。

+0

PHPでcURLがサポートされているときに、なぜrawソケットを使用しますか? – ceejayoz

+0

私はソケットが好きで、私は(個人的に)cURLがインストールされていない共有ホスティング会社の手がいっぱいあることは言うまでもありません。 – UnkwnTech

5

HTTP基本認証に何かを使用する場合は、実際の実装とHTTPヘッダーを無視する場合は、cURLを使用してください。

<?php 
$ch = curl_init(); 
// Sets the URL cURL will open 
curl_setopt($ch, CURLOPT_URL, 'http://twitter.com/statuses/user_timeline.xml?screen_name=al3x'); 
// Here's the HTTP auth 
// The 3rd argument is your Twitter username and password joined with a colon 
curl_setopt($ch, CURLOPT_USERPWD, 'username:password'); 
// Makes curl_exec() return server response 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
// Lately the Twitter API expects an Expect header. It's a mystery 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); 
// And here's the result XML 
$twitter_xml = curl_exec($ch); 
curl_close($ch); 
?> 

そして$twitter_xmlはal3xのパブリックタイムラインのXMLが含まれます。ここではPHPで簡単な例ですが、カールがあまりにも他の言語で利用可能です。速度制限がある限り、ceejayozはすでにそれをかなりうまく答えています。