For instance, set up the my database to create 200 tweets to post to a
account. It ran at 11:49 AM EST.  I noticed that 127 tweets were posted and
the remaining got kicked with the error response. Not sure if there is a
limit of 127 I thought it was 150 limit per hour.  This also does not hit
the 1000 daily limit since it was only 200 tweets.  I will try this again in
about 1 hour.  I should be able to start tweeting again.  Let me know what
you think?

On Wed, Jul 28, 2010 at 12:19 PM, Eric Mortensen <emort...@gmail.com> wrote:

> But, It appears did not hit a 1000 update limit since after an hour and can
> start updates again.  That why it appears to be an hourly limit.  Not to
> mention when this started I did not even have a 1000 tweets total on the
> account.  That is why it can't be the 1000 a day limit. There is should be
> another reason for this.
>
>
> On Tue, Jul 27, 2010 at 6:56 PM, Matt Harris <thematthar...@twitter.com>wrote:
>
>> Hey Eric,
>>
>> That error is the Twitter Limits kicking in saying there are too many
>> status updates being posted by the account. This isn't an API rate limit but
>> a natural limit which applies to all of Twitter. A user may not Twitter more
>> than 1000 updates a day (this includes retweets).
>>
>> More information on these limits are explained on the page I linked to
>> before:  http://support.twitter.com/forums/10711/entries/15364
>>
>> Hope that clarifies the what is happening.
>> Matt
>>
>>
>> On Tue, Jul 27, 2010 at 12:27 PM, Eric Mortensen <emort...@gmail.com>wrote:
>>
>>> Here is a response:
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <hash>
>>>   <error>User is over daily status update limit.</error>
>>>   <request>/1/statuses/update.xml</request>
>>> </hash>
>>>
>>>
>>>
>>> On Thu, Jul 15, 2010 at 5:41 PM, Matt Harris 
>>> <thematthar...@twitter.com>wrote:
>>>
>>>> Hey Eric,
>>>>
>>>> Sorry that help article didn't answer your question. Can you provide the
>>>> actual HTTP request being made and the HTTP response you get back? We're
>>>> interested in the response body content in particular.
>>>>
>>>> Also, remember we disable basic authentication on August 16th so you
>>>> want to switch to that method of authentication now.
>>>>
>>>> Matt
>>>>
>>>> On Thu, Jul 15, 2010 at 12:46 PM, Eric Mortensen <emort...@gmail.com>wrote:
>>>>
>>>>> Unfortunately not.  Do you have anything else that might explain it?
>>>>>
>>>>>
>>>>> On Thu, Jul 15, 2010 at 1:48 PM, Matt Harris <
>>>>> thematthar...@twitter.com> wrote:
>>>>>
>>>>>> Hi Eric,
>>>>>>
>>>>>> In addition to the API Rate Limits there are general usage limits
>>>>>> which apply to all of Twitter, including the website. These limits 
>>>>>> restrict
>>>>>> various actions including the number of updates that can be posted per 
>>>>>> day.
>>>>>>
>>>>>> You can read more about Twitter Limits on our help website:
>>>>>> http://support.twitter.com/forums/10711/entries/15364
>>>>>>
>>>>>> Hope that answers your question,
>>>>>> Matt
>>>>>>
>>>>>>
>>>>>> On Thu, Jul 15, 2010 at 10:11 AM, Eric <emort...@gmail.com> wrote:
>>>>>>
>>>>>>> It appears that I am hitting a 150 post rate limit when I use the
>>>>>>> statuses/update.xml api to update a twitter account eventhough I
>>>>>>> should not have this limit doing only a post. Is there a reason why?
>>>>>>> Here is the code I am using from oracle to do this:
>>>>>>>
>>>>>>> create or replace PACKAGE BODY tweet
>>>>>>> AS
>>>>>>>
>>>>>>>  twit_host VARCHAR2(255) := 'api.twitter.com';
>>>>>>>  twit_protocol VARCHAR2(10) := 'http://';
>>>>>>>
>>>>>>>  -- URL for status updates
>>>>>>>  tweet_url VARCHAR2(255) := '/1/statuses/update.xml';
>>>>>>>
>>>>>>>
>>>>>>>  FUNCTION tweet
>>>>>>>    (
>>>>>>>      p_user IN VARCHAR2,
>>>>>>>      p_pwd IN VARCHAR2,
>>>>>>>      p_string IN VARCHAR2,
>>>>>>>      p_proxy_url IN VARCHAR2 DEFAULT NULL,
>>>>>>>      p_no_domains IN VARCHAR2 DEFAULT NULL )
>>>>>>>    RETURN BOOLEAN
>>>>>>>  AS
>>>>>>>    v_req   UTL_HTTP.REQ;  -- HTTP request ID
>>>>>>>    v_resp  UTL_HTTP.RESP;  -- HTTP response ID
>>>>>>>    v_value VARCHAR2(1024); -- HTTP response data
>>>>>>>    v_status VARCHAR2(160);   -- Status of the request
>>>>>>>    v_call VARCHAR2(2000);  -- The request URL
>>>>>>>    v_log_value varchar2(4000) := 'status';
>>>>>>>  BEGIN
>>>>>>>
>>>>>>>    -- Twitter update url
>>>>>>>    v_call := twit_protocol ||
>>>>>>>              twit_host ||
>>>>>>>              tweet_url;
>>>>>>>
>>>>>>>    -- encoded status string
>>>>>>>    v_status := utl_url.escape(
>>>>>>>      url => 'status=' || SUBSTR( short_url.encode_text(p_string) ,
>>>>>>> 1,140));
>>>>>>>
>>>>>>>    -- Authenticate via proxy
>>>>>>>    -- Proxy string looks like 'http://username:passw...@proxy.com'
>>>>>>>    -- p_no_domains is a list of domains not to use the proxy for
>>>>>>>    -- These settings override the defaults that are configured at the
>>>>>>> database level
>>>>>>>    IF p_proxy_url IS NOT NULL
>>>>>>>    THEN
>>>>>>>      Utl_Http.set_proxy (
>>>>>>>        proxy                 => p_proxy_url,
>>>>>>>        no_proxy_domains      => p_no_domains
>>>>>>>        );
>>>>>>>    END IF;
>>>>>>>
>>>>>>>    -- Has to be a POST for status update
>>>>>>>    v_req := UTL_HTTP.BEGIN_REQUEST(
>>>>>>>          url => v_call,
>>>>>>>      method =>'POST');
>>>>>>>
>>>>>>>    -- Pretend we're a moz browser
>>>>>>>    UTL_HTTP.SET_HEADER(
>>>>>>>      r => v_req,
>>>>>>>      name => 'User-Agent',
>>>>>>>      value => 'Mozilla/4.0');
>>>>>>>
>>>>>>>    -- Pretend we're coming from an html form
>>>>>>>    UTL_HTTP.SET_HEADER(
>>>>>>>      r => v_req,
>>>>>>>      name => 'Content-Type',
>>>>>>>      value => 'application/x-www-form-urlencoded');
>>>>>>>
>>>>>>>    -- Set the length of the input
>>>>>>>    UTL_HTTP.SET_HEADER(
>>>>>>>      r => v_req,
>>>>>>>      name => 'Content-Length',
>>>>>>>      value => length(v_status));
>>>>>>>
>>>>>>>    -- authenticate with twitter user/pass
>>>>>>>    UTL_HTTP.SET_AUTHENTICATION(
>>>>>>>      r => v_req,
>>>>>>>      username => p_user,
>>>>>>>      password => p_pwd );
>>>>>>>
>>>>>>>    -- Send the update
>>>>>>>    UTL_HTTP.WRITE_TEXT(
>>>>>>>      r => v_req,
>>>>>>>      data => v_status );
>>>>>>>
>>>>>>>    UTL_HTTP.end_request (v_req);
>>>>>>>
>>>>>>>    RETURN TRUE;
>>>>>>>
>>>>>>>  EXCEPTION
>>>>>>>    -- normal exception when reading the response
>>>>>>>    WHEN UTL_HTTP.END_OF_BODY THEN
>>>>>>>            UTL_HTTP.end_request (v_req);
>>>>>>>          RETURN TRUE;
>>>>>>>
>>>>>>>    -- Anything else and send false
>>>>>>>    WHEN OTHERS THEN
>>>>>>>      UTL_HTTP.end_request (v_req);
>>>>>>>      Dbms_Output.Put_Line ( 'Request_Failed: ' ||
>>>>>>> Utl_Http.Get_Detailed_Sqlerrm );
>>>>>>>      Dbms_Output.Put_Line ( 'Ora: ' || Sqlerrm );
>>>>>>>         RETURN FALSE;
>>>>>>>
>>>>>>>  END;
>>>>>>>
>>>>>>> END tweet;
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>>
>>>>>> Matt Harris
>>>>>> Developer Advocate, Twitter
>>>>>> http://twitter.com/themattharris
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>> Matt Harris
>>>> Developer Advocate, Twitter
>>>> http://twitter.com/themattharris
>>>>
>>>
>>>
>>
>>
>> --
>>
>>
>> Matt Harris
>> Developer Advocate, Twitter
>> http://twitter.com/themattharris
>>
>
>

Reply via email to