Re: [twitter-dev] API HTTP Post statuses/update.xml

2010-07-29 Thread Eric Mortensen
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.comwrote:

 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.comwrote:

 Here is a response:
 ?xml version=1.0 encoding=UTF-8?
 hash
   errorUser 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.comwrote:

 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.comwrote:

 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

Re: [twitter-dev] API HTTP Post statuses/update.xml

2010-07-29 Thread Eric Mortensen
Why not? If Twitter states I can send 150 an hour or 1000 a day I should be
able to.  Not my rules its twitters. So I guess it needs to be written
somewhere that 42 per hour is the limit.  I am just trying to understand why
it appears that I am hitting a limit when i am only doing what twitter
apparently allows.  The limit I see is possibly the number of messages sent
at one time and twitter can't handle it and throws the error I have been
receiving.  So if that exists than I understand.  I just need to know where
it is stated.  The error message appears to wrong as well since I can still
send tweets and it has been a couple hours later.  Then I can tell the
program manager that this is why we can't send this many messages because of
this limit.  Maybe what will help is a link stating that there are
protections that prevent a certain number of updates/tweets happening at
once.

Thanks

On Thu, Jul 29, 2010 at 3:22 PM, Matt Harris thematthar...@twitter.comwrote:

 Why are you sending so many Tweets? It sounds like you are being restricted
 because you are sending too many per hour. The limit of updates per day
 exists but there are protections to prevent all those updates happening at
 once. I'm not familiar with the code that handles the measure windows or
 what the limits are but consider that 1000 tweets per day is approx 42 per
 hour.

 Matt


 On Thu, Jul 29, 2010 at 8:59 AM, Eric Mortensen emort...@gmail.comwrote:

 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.comwrote:

 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.comwrote:

 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.comwrote:

 Here is a response:
 ?xml version=1.0 encoding=UTF-8?
 hash
   errorUser 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.comwrote:

 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

Re: [twitter-dev] Re: API HTTP Post statuses/update.xml

2010-07-29 Thread Eric Mortensen
Thanks. Sounds good. How about this to bake your noodle. Not to be a dead
horse.  But, looking here http://dev.twitter.com/doc/post/statuses/update it
appears as though the statuses/update does not have a rate limit, other than
the 1000 limit for the day that applies regardless which i have not hit.
 Figure it all seems confusing.  Still appears that I should not even have
an hourly limit with this api only the daily 1000.  I guess rules of thumb
although I would like to have not gotten rate limited until a higher number
than the ~150 because of to much at one time.  So the 150 is only for GET
not POST.  POST is what I do.  So it looks like the 1000 is what I do hit
and something that governs that limit seems to have a condition that states
that if there is a lot of statuses/update within a certain time period flag
the account with this rate limit for the next hour or so.

On Thu, Jul 29, 2010 at 4:59 PM, natefanaro natefan...@gmail.com wrote:

 From personal experience the limit is around 150 per hour. That number
 has been raised/lowered in the past and yes the error message is
 misleading. It is possible that the 150 per hour is just a hard limit
 and 1000 per day is a policy limit. Either way if you can technically
 post 150 an hour that's as many as you're going to be able to do.
 Unless you present a very very good case to Twitter I don't believe
 this limit can be raised.

 I know the link Matt gave has some solid numbers but I wouldn't expect
 any more detail than that. It's been mentioned in this group before
 that exact numbers can't be given about some limits. They can change
 at any time and spammers could use that info to fly under the spam
 team's radar.

 On Jul 29, 3:50 pm, Eric Mortensen emort...@gmail.com wrote:
  Why not? If Twitter states I can send 150 an hour or 1000 a day I should
 be
  able to.  Not my rules its twitters. So I guess it needs to be written
  somewhere that 42 per hour is the limit.  I am just trying to understand
 why
  it appears that I am hitting a limit when i am only doing what twitter
  apparently allows.  The limit I see is possibly the number of messages
 sent
  at one time and twitter can't handle it and throws the error I have been
  receiving.  So if that exists than I understand.  I just need to know
 where
  it is stated.  The error message appears to wrong as well since I can
 still
  send tweets and it has been a couple hours later.  Then I can tell the
  program manager that this is why we can't send this many messages because
 of
  this limit.  Maybe what will help is a link stating that there are
  protections that prevent a certain number of updates/tweets happening at
  once.
 
  Thanks
 
  On Thu, Jul 29, 2010 at 3:22 PM, Matt Harris thematthar...@twitter.com
 wrote:
 
   Why are you sending so many Tweets? It sounds like you are being
 restricted
   because you are sending too many per hour. The limit of updates per day
   exists but there are protections to prevent all those updates happening
 at
   once. I'm not familiar with the code that handles the measure windows
 or
   what the limits are but consider that 1000 tweets per day is approx 42
 per
   hour.
 
   Matt
 
   On Thu, Jul 29, 2010 at 8:59 AM, Eric Mortensen emort...@gmail.com
 wrote:
 
   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.comwrote:
 
   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.comwrote:
 
   Here is a response:
   ?xml version=1.0 encoding=UTF-8?
   hash
 errorUser is over daily status update limit./error
 request/1/statuses

Re: [twitter-dev] API HTTP Post statuses/update.xml

2010-07-28 Thread Eric Mortensen
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.comwrote:

 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.comwrote:

 Here is a response:
 ?xml version=1.0 encoding=UTF-8?
 hash
   errorUser 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.comwrote:

 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.comwrote:

 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

Re: [twitter-dev] API HTTP Post statuses/update.xml

2010-07-27 Thread Eric Mortensen
Here is a response:
?xml version=1.0 encoding=UTF-8?
hash
  errorUser 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.comwrote:

 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.comwrote:

 Unfortunately not.  Do you have anything else that might explain it?


 On Thu, Jul 15, 2010 at 1:48 PM, Matt Harris 
 thematthar...@twitter.comwrote:

 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



Re: [twitter-dev] API HTTP Post statuses/update.xml

2010-07-15 Thread Eric Mortensen
Unfortunately not.  Do you have anything else that might explain it?

On Thu, Jul 15, 2010 at 1:48 PM, Matt Harris thematthar...@twitter.comwrote:

 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