0

私は次のコードを持っています:

error_reporting(E_ALL);

 ini_set("display_errors", 1);

$db = mysqli_connect("db.mysql","user","pwd","db");

$consumersecret = "Cy4qwsC1fdvP62x------BiEQMLwbDUUA";
$consumerkey = "0XCjdxL------lJc---UtA";

$accesstoken = "154823199------QO4L8xfMgpsGHLb-----xTOuUf4WMwY";
$accesssecret = "mOwRu6b34--------------ZRktk3pg";

require_once('tmhOAuth.php');
    $connection = new tmhOAuth(array(
       'consumer_key' => $consumersecret,
        'consumer_secret' => $consumerkey,
        'user_token' => $accesstoken,
        'user_secret' => $accesssecret,
      )); 

  $code=$connection->request('GET', $connection->url('1/statuses/user_timeline'),

                array('include_entities' => 'true', 

                        'include_rts' => 'true',

                        'screen_name'=>'mdibbets',

                        'count'=>'2'),true);



        if ($code == 200) {

            $responseData = json_decode($connection->response['response'],true);

            var_dump($connection->response['response']);

            }

        var_dump($connection->response);

私が得ている応答は次のとおりです。

array(4) {
  ["headers"]=>
  array(12) {
    ["x_ratelimit_limit"]=>
    string(3) "150"
    ["x_ratelimit_remaining"]=>
    string(1) "0"
    ["x_ratelimit_reset"]=>
    string(10) "1347001832"
    ["x_ratelimit_class"]=>
    string(3) "api"
    ["content_type"]=>
    string(30) "application/json;charset=utf-8"
    ["set_cookie"]=>
    string(99) "guest_id="v1:134699975230464174"; Expires=Sun, 7-Sep-2014 06:35:52 GMT; Path=/; Domain=.twitter.com"
    ["status"]=>
    string(15) "400 Bad Request"
    ["x_transaction"]=>
    string(16) "ba0517c8728574ad"
    ["x_frame_options"]=>
    string(10) "SAMEORIGIN"
    ["date"]=>
    string(29) "Fri, 07 Sep 2012 06:35:52 GMT"
    ["content_length"]=>
    string(3) "200"
    ["server"]=>
    string(3) "tfe"
  }
  ["code"]=>
  int(400)
  ["response"]=>
  string(200) "{"request":"\/1\/statuses\/user_timeline.json?count=2&include_entities=true&include_rts=true&screen_name=mdibbets","error":"Rate limit exceeded. Clients may not make more than 150 requests per hour."}"
  ["info"]=>
  array(23) {
    ["url"]=>
    string(121) "https://api.twitter.com/1/statuses/user_timeline.json?count=2&include_entities=true&include_rts=true&screen_name=mdibbets"
    ["content_type"]=>
    string(30) "application/json;charset=utf-8"
    ["http_code"]=>
    int(400)
    ["header_size"]=>
    int(450)
    ["request_size"]=>
    int(529)
    ["filetime"]=>
    int(-1)
    ["ssl_verify_result"]=>
    int(0)
    ["redirect_count"]=>
    int(0)
    ["total_time"]=>
    float(0.743177)
    ["namelookup_time"]=>
    float(3.7E-5)
    ["connect_time"]=>
    float(0.184139)
    ["pretransfer_time"]=>
    float(0.555495)
    ["size_upload"]=>
    float(0)
    ["size_download"]=>
    float(200)
    ["speed_download"]=>
    float(269)
    ["speed_upload"]=>
    float(0)
    ["download_content_length"]=>
    float(200)
    ["upload_content_length"]=>
    float(0)
    ["starttransfer_time"]=>
    float(0.743047)
    ["redirect_time"]=>
    float(0)
    ["certinfo"]=>
    array(0) {
    }
    ["redirect_url"]=>
    string(0) ""
    ["request_header"]=>
    string(529) "GET /1/statuses/user_timeline.json?count=2&include_entities=true&include_rts=true&screen_name=mdibbets HTTP/1.1
User-Agent: themattharris' HTTP Client
Host: api.twitter.com
Accept: */*
Authorization: OAuth oauth_consumer_key="Cy4qwsC1fdvP6--------EQMLwbDUUA", oauth_nonce="0a119b791------604faaf23", oauth_signature="OsHfGZ------wmMApoxNdddD4%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1346999751", oauth_token="154823-------gpsGHLb1DMUnxxTOuUf4WMwY", oauth_version="1.0"

"
  }
}

私が使用しなかったOauthを機能させるためのトリックはありますか?どういうわけか、tmoauthのすべてのドキュメントは404になりますが、強くお勧めします。

誰かが私にtmoauthを正しく使用する方法のポインタを教えてもらえますか?ドキュメント、サンプルコード、何か?

私は共有仮想サーバーホストを使用しているので、Twitterは明らかに私のホスティング会社の他のクライアントからのIPを認識します。

誰かがtmoauthなしでこれを行うための十分に文書化された方法を知っているなら、純粋にネイティブのphp私はすべての耳ですが、それは本当に良い文書が必要です。

4

1 に答える 1

2
  • tmhOauthには、例の中にドキュメントがあります。例は非常に単純で、コードを理解するのに役立ちます。ここで例を見つけることができます:
    https ://github.com/themattharris/tmhOAuth-examples

  • 独自のアプリケーションのアクセストークンを取得して、独自のトークンを使用することもできます。これを確認してください:https ://dev.twitter.com/discussions/631

  • 問題のコードに関しては、400エラーが発生します。これは404とは異なります。不正なリクエストを行いました。ヘッダーから、レート制限を消費したことがわかります。次のリセット時間まで待つ必要があります。これはエポックです1347001832=金、2012年9月7日07:10:32 GMT

補足として、先週発表されたTwitterAPI1.1を使用できます。これにより、より多くのレート制限が与えられます。

于 2012-09-14T05:32:43.920 に答える