2017-08-18 5 views
3

PinterestのAPIの与えられた時間内に、次のAPIを通じてPinterestのユーザーのフォロー: LIMIT時速1000本のヒットユーザーごとにアクセス権を https://api.pinterest.com/v1/me/following/users/?access_token=XXXXXXXX&user=XXXXXXX効率的にフォローのためのPHP CodeIgniterの

+-------------+---------------------+------------------+ 
| userId | usertoFollowPerHour | maxUserAvailable | 
+-------------+---------------------+------------------+ 
| 1   |     100 |    1000| 
| 2   |     200 |    9000| 
| 3   |     210 |    100| 
| 4   |     300 |    1100| 
| 5   |     300 |    900| 
| .   |      |     | 
| .   |      |     | 
| .   |      |     | 
| n   |     n|     n| 
+-------------+---------------------+------------------+ 

トークン今、私は、特定のユーザーを従わなければなりませんユーザーIDとなるよう: 3時間ごとに01の後に次の関数のURLをヒットするのcronを:私は現在、私はでそれをやっている

私のプロフィールをブロックしないPinterestの限度内と ユーザーに従うことができ ある機能:ユーザーを計算

  1. は、例:のために一つのループでフォローする:上記のロジックによって

    1. let currentTime = 1:00 
         and endTime = 2:00 
         user to follow = 300 
         timeRemaining = currentTime-endTime => 60 minutes 
         300/60 = 5 => ceil(5)=5 
        2. it will fetch five user in one iteration from Pinterest 
        3. than it will follow them one by one in secont loop 
        4. after that again it will calculate until userToFllow become 0 
         300-5=295 => ceil(295/timeRemaining(let 59)) = 5 
        5. again 1 for next user 
    

    OUTPUT

は、我々のユーザーの一部は可能/禁止されてブロックされてしまいましたPinterestに起因する場合reason

可能な場合は、私はマルチスレッドやそれ以上の機能を使ってこの非同期を行うべきかどうかを解答してください。それだけで

答えて

0

だからあなたのAPIでは、このロジックに従うのCodeIgniterすることによって達成することができる場合、私は幸せになります:

(ユニークなアプリのIDを持つ)各アプリごとのユニークなユーザーのために、毎時1000回の呼び出しを許可されていますトークン。 60分のウィンドウは、あなたが最初にリクエストしたときに基づいたスライディングウィンドウです。レート制限に達した場合は、もう少しリクエストを受けるために最大1時間待たなければなりません。

すべてのAPIレスポンスは、 レート制限についてのアップデートを提供するヘッダーを返します。 X-Ratelimit-Limitは、特定の リクエストのレート制限です.X-Ratelimit-Remainingは、 が60分間のウィンドウに残っているリクエストの数です。

X-Ratelimit-Limit: 1000 
X-Ratelimit-Remaining: 890 

あなたのAPIレスポンスヘッダにこの条件を追加し、残りの何をチェックします。

httpコードが429であるか、ログファイルにログインしている場合は、この状態応答を確認し、自分自身に電子メールを送信します。

PS:これを試していませんが、同じ方法で問題を解決するのに役立つことは確実です。

ソースPintrest Documentation

関連する問題