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