2

「httpベーシック認証」でtwitter apiを使うには?

「コンシューマーキー」を使うべきだと思います!Twitter は 1 時間あたりのリクエスト数に制限を設けているため、コンシューマー キーを使用しなかった場合、どうすればリクエストをカウントできますか?

4

5 に答える 5

5

HTTP基本認証を何かで使用する場合は常に、実際の実装とHTTPヘッダーを無視する場合は、cURLを使用してください。PHPの簡単な例を次に示します。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_xmlal3xのパブリックタイムラインのXMLが含まれます。レート制限に関する限り、ceejayozはすでにそれをかなりうまく答えています。

于 2009-05-22T08:04:35.767 に答える
1
$twitter = file_get_content("http://user:password@twitter.com/blabla");

PHP でのネイティブ HTTP ラッパー サポートの詳細

于 2009-05-22T08:38:35.590 に答える
1

同じ IP からのリクエストをカウントしていると思いますが、再確認していません。

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

他のポスターが言ったように、キーを持っている場合はより良い方法があります。

于 2009-05-22T07:37:28.490 に答える
1

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

認証されていない API GET リクエスト (一部のメソッドで許可されている) は、IP アドレスの集計に対してカウントされます。

POST リクエストはレート制限されていません。

詳細については、Twitter ドキュメントを参照してください。

于 2009-05-22T07:44:51.377 に答える
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/fmsvnSVN サーバーからのコールバックを使用してプロジェクトのTwitterフィードにSVNメッセージを投稿しています。

于 2009-05-22T07:47:59.017 に答える