[twitter-dev] Re: illegal character in json feed

2011-06-14 Thread themattharris
Hey everyone,

Thanks for all the information you provided. We were able to reproduce
the problem and the engineers have now released a fix.
You shouldn't receive any garbled API responses anymore, if you do
please let us know.

Best,
@themattharris

On Jun 14, 7:59 pm, michael hazzard miramardes...@gmail.com wrote:
 Marc,
 Nice theory but I'm not so sure since I'm reloading the same exact tweet (I
 think)over and over again and its getting corrupted.
 Although I've heard of type of thing before where an application (notepad)
 tries to do charset encoding detection but fails and outputs a corrupted
 file upon reopening.
 On Jun 14, 2011 9:24 PM, marc fawzi marc.fa...@gmail.com wrote:









  Re: error handling the jsonp script error

  I started using the previously mentioned window.onerror mechanism
  wherein I reload the iframe from which I'm initiating the jsonp call,
  up to 10 times, 3 seconds apart (the average delay in getting the
  script back from twitter, which triggers the error which in turn
  starts another jsonp request and so on, up to 10 times)

  I'm using this approach in addition to my pre-existing 5 retries on
  general error, 10 seconds apart non-blocking error handler which was
  able to survive the illegal character error on its own and recover
  from it, but sometimes it ended up with Sorry, try again
  later (twitter recovers after a while on its own and my app continues
  from there but sometimes the error persists with twitter.) The pre-
  existing handler was using more time on average (about 20-50 seconds)
  and the newly added window.onerror mechanism, which runs before the
  self-terminating, non-blocking handler loop, is taking less time on
  average (6-15 seconds) to go thru the same process for the jsonp
  script error reported by the browser. However, sometimes, this error
  persists for too many retries and falls out of the window.onerror but
  99% of the time so far it's getting caught by my pre-existing general
  error handler (now, the second layer of defense)

  I never thought I had to double up! :)

  Re: illegal character

  Wow. Really? you can have the unicode character for delete \u0008 in
  the response? I have a full dump of the jsonp response in firebug and
  that's the character that firebug terminates at when reporting the
  error so I assume that's the culprit, but could be others as well. On
  a more relevant note, I don't think the illegal character coming back
  in jsonp have anything to do with the tweet's content. It looks as if
  some tweets contain some combination of characters that cause twitter
  to return a binary dump of some sort (in casual terms, it causes it to
  hallucinate.)

  Anyway intriguing. :)

  Marc
  On Jun 14, 6:53 pm, Romica iordan.rom...@gmail.com wrote:
   I have the same problem (bad JSON most of the times). The weird thing
   is that if I access the URL direct from the browser it works (good
   JSON every time). I'm using jQuery.getJSON and I think that this (or
   something connected to this) might be the problem.

   Unfortunately I cannot use window.onerror (as Michael suggested)
   because I have multiple asynchronous requests at the same time (it
   would be tricky and expensive to find out which one is bad - at least
   I suppose so).

   Good luck in solving this

  --
  Twitter developer documentation and resources:https://dev.twitter.com/doc
  API updates via Twitter:https://twitter.com/twitterapi
  Issues/Enhancements Tracker:

 https://code.google.com/p/twitter-api/issues/list Change your membership to 
 this group:

 https://groups.google.com/forum/#!forum/twitter-development-talk

-- 
Twitter developer documentation and resources: https://dev.twitter.com/doc
API updates via Twitter: https://twitter.com/twitterapi
Issues/Enhancements Tracker: https://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
https://groups.google.com/forum/#!forum/twitter-development-talk


[twitter-dev] Re: A new permission level

2011-05-19 Thread themattharris
,
@themattharris

-- 
Twitter developer documentation and resources: https://dev.twitter.com/doc
API updates via Twitter: https://twitter.com/twitterapi
Issues/Enhancements Tracker: https://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
https://groups.google.com/forum/#!forum/twitter-development-talk


[twitter-dev] Re: A new permission level

2011-05-18 Thread themattharris
Hey everyone,

Thank you for all the feedback on the list, email and through Tweets.
We've been responding throughout the day to many of the Tweets but
wanted to group the questions together and respond here as well.

 Two weeks is not enough time to implement a web OAuth flow and have the app 
 approved. We need an extension.
We’ve heard your feedback on this list, privately and through Tweets
about this. Based on this feedback we are going to extend the
enforcement deadline by two weeks.

 This means we'll enforce the new permission the week beginning
the 14th June 2011. 

This should provide enough time for you to make the change and have
your application approved by your chosen platform’s app store.


 Will Twitter's own applications also go through the OAuth web flow?
We’re taking this step to give more clarity and control to users about
the access a third-party application has to their account. The way
users interact with Twitter’s clients is not expected to change.

Applications who wish to access a user’s DMs will need to update their
application permission and incorporate the OAuth web flow if they
don’t already. If an application does not need access to DMs it will
not need to make any changes.


 Why will you not grandfather existing applications into DM access?
Grandfathering all existing read/write tokens assumes they all wanted
access to DMs. The feedback we’ve had from users and developers tells
us otherwise. We want to give users the opportunity to make an
informed choice.


 What if the client using xAuth has no browser and therefore cannot go through 
 OAuth?
For single user applications and scripts we provide the 'My Access
Token' page of the application details. To ensure the 'My Access
Token' is correct it is important the app owner revokes their access
before change the permission level of the app. If you do not do this,
the 'My Access Token' will not be regenerated with the new permission.
This revoke action is only needed by you, the owner of the
application. Remember Read/Write applications can still send direct
messages.


 When you activate the new permission, will all Read and Read/Write 
 user_tokens issued to third-party applications lose their ability to read 
 direct messages?
Existing tokens are unaffected by any change to the application
permission level. If you change your application to R/W/DM all future
authorizations will be for that permission. When a user re-authorizes,
their existing token will be updated to the current application
permission level. Access to DMs will be enforced on 14th June 2011 if
the user_token wasn't authorised as for R/W/DM.


 What if I want to request a different level of access for my application 
 instead of the one my application is registered with?
You can do this now by using the x_auth_access_type parameter during
the request_token phase. Using this parameter you can request a read
or a read/write token even if your application is registered for read/
write/direct messages.

More information on this method is in our developer documentation:
http://dev.twitter.com/doc/post/oauth/request_token


 Why are permissions attached to the user token?
Permissions are attached to the user token to ensure an application
only has the access a user has authorised. If permissions were not
attached to the user token an application would be able to change the
level of access they have without the user’s knowledge. If you tie the
permissions to the application each user token would need to be
invalidated whenever an application’s permissions are changed.


 Users already gave their permission for apps to access private messages, why 
 are you making us, and them, reauthorize?
The purpose of the re-authorization is to ensure both users and
developers know the level of access requested. Re-authorization allows
a user to make a more informed decision about the access an
application has requested.

We hope these responses answer your questions. Please continue to send
us your feedback about the permission model and what you would like to
see it offer.

Best,
@themattharris

-- 
Twitter developer documentation and resources: https://dev.twitter.com/doc
API updates via Twitter: https://twitter.com/twitterapi
Issues/Enhancements Tracker: https://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
https://groups.google.com/forum/#!forum/twitter-development-talk


[twitter-dev] Re: HTTPS profile and profile background image URLs are being added to user objects

2011-05-16 Thread themattharris
Just to follow up on this, the correct additional fields are:
 profile_image_url_https
 profile_background_image_url_https

The original email missed the _url in profile_image_url_https.

Best
@themattharris

On May 16, 3:27 pm, Matt Harris thematthar...@twitter.com wrote:
 Hey everyone,

 Later this week we'll start to add two new fields to the user object
 responses from the Streaming and REST APIs (not Search). Due to caching, not
 all objects will have these fields immediately so you should check they are
 present in the response before using them.

 The two additional fields are the SSL versions of the profile_image_url and
 the profile_background_image_url. They will be identified in the user object
 by the attributes:
     profile_image_https
     profile_background_image_url_https

 For example, the @twitter user would look similar to this:
 {
   profile_background_tile: false,
   name: Twitter,
   profile_sidebar_fill_color: F6F6F6,
   profile_sidebar_border_color: EE,
   location: San Francisco, CA,
   created_at: Tue Feb 20 14:35:54 + 2007,
   profile_image_url: 
 http://a0.twimg.com/profile_images/1124040897/at-twitter_normal.png;,
   id_str: 783214,
   is_translator: false,
   profile_link_color: 038543,
   follow_request_sent: false,
   default_profile: false,
   contributors_enabled: true,
   favourites_count: 10,
   url: http://twitter.com;,
   utc_offset: -28800,
   id: 783214,
   profile_image_url_https: 
 https://si2.twimg.com/profile_images/1124040897/at-twitter_normal.png;,
   listed_count: 58963,
   profile_use_background_image: true,
   lang: en,
   protected: false,
   profile_text_color: 33,
   followers_count: 5063298,
   notifications: false,
   geo_enabled: true,
   verified: true,
   profile_background_color: ACDED6,
   profile_background_image_url_https: 
 https://si2.twimg.com/images/themes/theme18/bg.gif;,
   description: Always wondering what's happening. ,
   time_zone: Pacific Time (US  Canada),
   statuses_count: ,
   friends_count: 487,
   default_profile_image: false,
   profile_background_image_url: 
 http://a1.twimg.com/images/themes/theme18/bg.gif;,
   status: {
     coordinates: null,
     created_at: Mon May 16 17:23:59 + 2011,
     truncated: false,
     favorited: false,
     id_str: 70177690392592384,
     in_reply_to_user_id_str: null,
     text: Remember in 2009 when @aplusk and @cnn were racing to be the
 1st to reach a million followers? @ladygaga just reached 10 million. Wow!,
     annotations: null,
     contributors: [
       16739704
     ],
     id: 70177690392592384,
     retweet_count: 100+,
     in_reply_to_status_id_str: null,
     geo: null,
     retweeted: false,
     in_reply_to_user_id: null,
     in_reply_to_screen_name: null,
     source: web,
     place: null,
     in_reply_to_status_id: null
   },
   screen_name: twitter,
   show_all_inline_media: true,
   following: true

 }

 Best,
 @themattharris
 Developer Advocate, Twitterhttp://twitter.com/themattharris

-- 
Twitter developer documentation and resources: https://dev.twitter.com/doc
API updates via Twitter: https://twitter.com/twitterapi
Issues/Enhancements Tracker: https://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
https://groups.google.com/forum/#!forum/twitter-development-talk


[twitter-dev] Re: 401: Unauthorized (Python)

2011-02-08 Thread themattharris
Hey John,

So a couple of things i've noticed.

1. You are using https://twitter.com instead of https://api.twitter.com
2. Maybe i'm following your flow incorrectly but it looks like you are
passing the OAuth parameters twice. Once in the URL parameters and
once in the body?
3. You are passing an oauth_token to the request_token endpoint.
Making a request to request_token means you don't have a token already
and want one. So that parameter shouldn't be in that request.

Best,
@themattharris

On Feb 5, 9:10 am, john john.g...@gmail.com wrote:
 Matt,

 The response is empty, that's what I'm curious about. I've included
 the uri, headers, body and request variables below. This request was
 performed at 2/5/2011 12:06.

 Uri =
 'https://twitter.com/oauth/request_token?
 oauth_nonce=47248509oauth_timestamp=1296925690oauth_consumer_key=h3bOaVfT 
 r8I7r2KQCzYCAoauth_signature_method=HMAC-
 SHA1oauth_version=1.0oauth_signature=9fpRZWGZls2kpfUQOZFnvPPTC9s%3D'

 Request = {'oauth_nonce': '45640133', 'oauth_timestamp': '1296925356',
 'oauth_consumer_key': 'h3bOaVfTr8I7r2KQCzYCA',
 'oauth_signature_method': 'HMAC-SHA1', 'oauth_version': '1.0',
 'oauth_token': 'Y0kKb5PhvjynbpKhfwF9na6ptznlkreKDheHo4YBmY',
 'oauth_signature': 'zWwMR/v81XlzoeCpeYWHiMMIrPc='}

 Body =
 'oauth_nonce=45640133oauth_timestamp=1296925356oauth_consumer_key=h3bOaVf 
 Tr8I7r2KQCzYCAoauth_signature_method=HMAC-
 SHA1oauth_version=1.0oauth_token=Y0kKb5PhvjynbpKhfwF9na6ptznlkreKDheHo4YB 
 mYoauth_signature=zWwMR
 %2Fv81XlzoeCpeYWHiMMIrPc%3D'

 Headers = {'Content-Type': 'application/x-www-form-urlencoded'}

 Thanks,
 John

 On Feb 4, 9:40 pm, Matt Harris mhar...@twitter.com wrote:







  Hi John,

  That dict object doesn't contain the response body. In the response body we 
  give an error reason such as 'Invalid signature', or 'timestamp out of 
  bounds'.

  Best,
  Matt

  On Feb 4, 2011, at 17:37, john john.g...@gmail.com wrote:

   Hi Matt,

   Thanks for responding. I've posted the response below (as a python
   dict).

   {'status': '401', 'content-length': '1', 'x-xss-protection': '1;
   mode=block', 'x-transaction': 'Sat Feb 05 01:33:54 +
   2011-76395-3097', 'set-cookie': 'k=74.128.37.77.1296869634703204;
   path=/; expires=Sat, 12-Feb-11 01:33:54 GMT; domain=.twitter.com,
   guest_id=129686963484327539; path=/; expires=Mon, 07 Mar 2011 01:33:54
   GMT,
   _twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCBwzdPMtAToHaWQiJWY1OTdhNDQ2Yjg1YzIw
   %250AYTVjMmEyNWUyMjM2ZTY1ZGY3IgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVy
   %250AOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--01f06bea7e9f7559080f47e3b046
117c40c39212;
   domain=.twitter.com; path=/', 'expires': 'Tue, 31 Mar 1981 05:00:00
   GMT', 'vary': 'Accept-Encoding', 'x-runtime': '0.00533', 'server':
   'hi', 'x-revision': 'DEV', 'last-modified': 'Sat, 05 Feb 2011 01:33:54
   GMT', 'connection': 'close', 'pragma': 'no-cache', 'cache-control':
   'no-cache, no-store, must-revalidate, pre-check=0, post-check=0',
   'date': 'Sat, 05 Feb 2011 01:33:54 GMT', 'x-frame-options':
   'SAMEORIGIN', 'content-type': 'text/html; charset=utf-8'}

   From what I've read, Twitter's oauth responses lack the error handling
   that one would like. Any idea where I should go from here? I found the
   section of the library I'm using that creates the UTC timestamp, by
   calling time.time(). I would think that Django's timezone property
   would set the runtime timezone, however I have not checked that
   specifically. Any ideas?

   Thanks,
   John

   On Feb 4, 4:58 pm, Matt Harris mhar...@twitter.com wrote:
   Hi John,

   What is the does the body of the error response say? The message will 
   tell you which part of the oauth request failed.

   Also be aware that oauth timestamps are in UTC seconds.  

   Best,
   @themattharris

   On Feb 4, 2011, at 12:45, john john.g...@gmail.com wrote:

   I have an application that contains a simple setup using the
   oauthtwitter library found here.

  http://code.google.com/p/oauth-python-twitter/

   #Example code
   twitter = app.extras.oauthtwitter.OAuthApi(CONSUMER_KEY,
   CONSUMER_SECRET)
   request_token = twitter.getRequestToken()
   oauth_verifier = request.GET.get('oauth_verifier')
   access_token = twitter.getAccessToken(request_token, oauth_verifier)

   I'm failing at getting the access token. I have a verifier and am
   passing that along, like the example in the oauth lib, however am
   continuing to get (all day now) 401s. My system time is set correctly,
   as this is in a Django project, and I'm setting it via TIME_ZONE =
   'America/Kentucky/Louisville' in my settings.py. Can anyone help?

   Thanks,
   John

   --
   Twitter developer documentation and resources:http://dev.twitter.com/doc
   API updates via Twitter:http://twitter.com/twitterapi
   Issues/Enhancements 
   Tracker:http://code.google.com/p/twitter-api/issues/list
   Change your membership to this 
   group:http://groups.google.com/group/twitter-development-talk

   --
   Twitter developer

[twitter-dev] Re: incorrect created_at times?

2011-01-06 Thread themattharris
Hi Jenny,

The engineers have said this issue should be fixed but that it may
take some time for the cached data to update. This means things going
forward should be fine but Tweets prior to today may still report the
wrong created_at value.

This only affects REST API queries. The Streaming API would have
streamed the correct created_at value when the Tweet was originally
published.

Best
Matt

On Jan 5, 11:01 am, jenny jloo...@gmail.com wrote:
 ack, sorry- sinceid issue was me being stupid with since_id/count
 params. still wondering what's going on with the incorrect created_at
 times though.

 On Jan 4, 5:26 pm, jenny jloo...@gmail.com wrote:







  lately I've noticed tweets with times out of order on twitter.com. for
  example, earlier todayhttp://twitter.com/#!/warrenellisshowed:

  Previous Marvel EIC Joe Quesada becomes Chief Creative Officer, to be
  addressed as Comandante
  4 hours agohttp://twitter.com/#!/warrenellis/status/22352255088852993

  Axel Alonso becomes new Editor In Chief of Marvel Comics, institutes
  celebratory beatings companywide
  3 hours agohttp://twitter.com/#!/warrenellis/status/22351328088956928
  ...
  The brilliant novelist @steveaylett is guest writer today at my 
  site:http://bit.ly/epD01V
  4 hours agohttp://twitter.com/#!/warrenellis/status/22332045711646720

  calling twurl /1/statuses/show/ for each of the above ids yields:
  22352255088852993:
  created_atTue Jan 04 20:29:07 + 2011/created_at
  statuses_count12853/statuses_count

  22351328088956928:
  created_atTue Jan 04 21:07:31 + 2011/created_at
  statuses_count12852/statuses_count

  22332045711646720:
  created_atTue Jan 04 20:00:10 + 2011/created_at
  statuses_count12851/statuses_count

  Is this expected?  they're correctly sorted by status id, but the
  created_at times are out of order, and incorrect judging by the
  statuses_count. It looks like created_at values are used behind the
  scenes in some REST queries using sinceid, since if I try to get
  statuses since the middle tweet above, it won't include the first
  tweet, which has a higher status id but earlier created_at time:
  $ twurl /1/statuses/home_timeline.xml?sinceid=22351328088956928 | grep
  22352255088852993
  $

  (to reproduce the sinceid bug you have to use tweets from people
  you're already following; if I start following warrenellis from
  another account after those tweets have happened, the above call
  includes the top tweet.)

  another example from my home timeline, in order shown on twitter.com
  earlier today:
  codinghorror Jeff Atwood
  A call to all community minded sysadminshttp://goo.gl/Vfo8P
  4 hours ago
  (http://twitter.com/#!/codinghorror/status/22357712645918720,
  created_at = Tue Jan 04 18:24:28 + 2011)

  arstechnica Ars Technica
  Warrantless cell phone search gets a green light in 
  California:http://arst.ch/np...@ejacqui
  3 hours ago
  (http://twitter.com/#!/arstechnica/status/22357602243448833,
  created_at = Tue Jan 04 19:51:52 + 2011)

  BoingBoing Boing Boing
  In Egypt, an iPrayerhttp://bit.ly/gsFfHp
  2 hours ago
  (http://twitter.com/#!/BoingBoing/status/22357128580694016,
  created_at = Tue Jan 04 21:08:45 + 2011)

  BoingBoing Boing Boing
  Cute, friendly, non-threatening bear hathttp://bit.ly/gKsaAP
  4 hours ago
  (http://twitter.com/#!/BoingBoing/status/22357124545773568,
  created_at = Tue Jan 04 19:06:26 + 2011)

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: Please check you are using the correct API and host

2010-12-17 Thread themattharris
SSL (https) is supported on some but not all hosts. You can use SSL
on:

* api.twitter.com
* userstream.twitter.com
* betastream.twitter.com
* search.twitter.com

SSL is currently not supported on:
* platform.twitter.com
* widgets.twimg.com
* stream.twitter.com

Best,
@themattharris
Developer Advocate, Twitter
http://twitter.com/themattharris

On Dec 16, 4:57 pm, Abraham Williams 4bra...@gmail.com wrote:
 https should be preferred on many of these especially anything that
 is transferring protected data.

 Abraham
 -
 Abraham Williams | Hacker Advocate | abrah.am
 @abraham https://twitter.com/abraham | github.com/abraham | blog.abrah.am
 This email is: [ ] shareable [x] ask first [ ] private.

 On Thu, Dec 16, 2010 at 16:54, Matt Harris thematthar...@twitter.comwrote:







  Hey Developers,

  We recently reviewed a sample of your API requests, emails and support
  tickets and found that some of you were not using the correct domains.

  While undocumented domains and endpoints may respond with data, you should
  avoid using them as they may be disabled or changed without notice.

  Our network infrastructure is also updated from time to time. These changes
  are required for capacity planning or load balancing, but are generally
  transparent to you if you use the correct API host.

  To avoid problems or outages with your applications you need to ensure you
  are using the correct hosts (and base paths) for the Twitter API you want to
  use. Even if your code is working now, you should check the hosts match
  those listed below:

  REST API:
     http://api.twitter.com/1/RESOURCE
  OAuth:
     http://api.twitter.com/oauth/RESOURCE
  Streaming (Track):
     http://stream.twitter.com/1/RESOURCE
  Userstreams:
     http://userstream.twitter.com/2/user.json
  SiteStreams Beta:
     http://betastream.twitter.com/2b/site.json
  Search:
     http://search.twitter.com/search.json
  Tweet Button:
     http://platform.twitter.com/widgets.js
  @anywhere:
     http://platform.twitter.com/anywhere.js
  Web Widgets:
     http://widgets.twimg.com/j/2/widget.js

  Some common errors include:
      * Incorrectly usinghttp://twitter.cominstead of
 http://api.twitter.com/1/
      * Incorrectly using requests like
 http://api.twitter.com/account/verify_credentials.jsoninstead of
 http://api.twitter.com/1/account/verify_credentials.json
      * Incorrectly directing users 
  tohttp://twitter.com/oauth/authorizeinsteadof
 http://api.twitter.com/oauth/authorize
      * Incorrectly queryinghttp://199.16.156.11/search.jsoninstead of
 http://search.twitter.com/search.json

  You can find the documented endpoints on our developer resources site:
     http://dev.twitter.com

  Best,
  @themattharris
  Developer Advocate, Twitter
 http://twitter.com/themattharris

  --
  Twitter developer documentation and resources:http://dev.twitter.com/doc
  API updates via Twitter:http://twitter.com/twitterapi
  Issues/Enhancements Tracker:
 http://code.google.com/p/twitter-api/issues/list
  Change your membership to this group:
 http://groups.google.com/group/twitter-development-talk

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: Snowflake, it's almost 9007199254740992 time.

2010-12-06 Thread themattharris
Hi Kevin,

Thanks again for pointing this out. We've updated the gist with a fix
for the issue you identified:
https://gist.github.com/637624

Best,
@themattharris

On Dec 3, 3:23 pm, Matt Harris thematthar...@twitter.com wrote:
 Thanks for pointing this out Kevin. I've passed this onto the engineers for
 review.

 Best
 @themattharris
 Developer Advocate, Twitterhttp://twitter.com/themattharris

 On Fri, Dec 3, 2010 at 11:10 AM, Kevin Watters kevinwatt...@gmail.comwrote:







  Beware the natural order comparison code linked above.
  natcompare(10705970246197248, 625058521088) returns -1
  incorrectly. Seehttps://gist.github.com/727383for an example.

  On Nov 23, 12:26 pm, Matt Harris thematthar...@twitter.com wrote:
   Hey everyone,

   You may remember a few weeks ago we launched Snowflake having encouraged
  you
   all to check your code to make sure you were able to handle the larger
   numbers it will generate. For those of you whose code couldn't handle the
   longer numbers we created String versions of the IDs in our JSON
  responses,
   identified by an _str at the end of their name - for example the Tweet
  ID
   in the JSON response exists twice: once as a number (id) and once as a
   string (id_str). For API requests which returned arrays of IDs we added
  the
   parameter stringify_ids to force all IDs to Strings. For example:

 https://api.twitter.com/1/followers/ids.json?cursor=-1stringify_ids=1

   We're sending this reminder because at 2.14pm PDT (10.14pm UTC) this
  Sunday,
   28th November 2010 Snowflake IDs will reach 53bits.

   Only Tweet IDs are generated by Snowflake. This means only Tweets,
  Retweets,
   Mentions and Replies are affected this weekend. Things like Saved
  Searches,
   Users and Direct Messages are not Snowflaked.

   If you haven't converted your code to use the String version you should
  do
   so immediately. Once the IDs reach 53bits Javascript, and some other
   languages, misrepresent the numbers. As an example: 2**53 =
  9007199254740992

   Representing this in Javascript gives

(9007199254740992).toString()
   9007199254740992
(9007199254740993).toString()
   9007199254740992
(9007199254740994).toString()
   9007199254740994
(9007199254740995).toString()
   9007199254740996
(9007199254740999).toString()

   9007199254741000

   You can see in this example that the Tweet IDs are being misrepresented
  in
   their converted state. We've provided String versions of all of our IDs,
   even those which are not using Snowflake IDs. We've done this to make it
   easier for you to convert your code. Even if your code can handle the
  longer
   numbers you may want to convert to Strings anyway. Doing so will reduce
  the
   risk of problems should you extend your code with a language or library
  that
   doesn't support 53bit numbers.

   If you are using Javascript you may find the following code samples
  helpful.
   They were put together by our web team as an example approach to the
  problem
   of capturing the String version of the IDs, and sorting them.

   The first gist looks for the new *_str field and uses it if it's there.
   If
   it's missing, the original field is used but stringified first. This
  doesn't
   make IDs 53bit safe for you but but does mean you can use String IDs for
   all other attributes without having to check for them first.

   The second code sample using the library natcompare.js which performs
   'natural order' comparisons of strings in JavaScript. It was written by
   Kristof Coomans of the SCK-CEN (Belgian Nucleair Research Centre).
      http://gist.github.com/637624

   There has been some great discussion about this in the developer forums,
   including some questions and answers about the change. You can read more
   here:

  http://groups.google.com/group/twitter-development-talk/browse_thread...

   Best,
   @themattharris
   Developer Advocate, Twitter

  --
  Twitter developer documentation and resources:http://dev.twitter.com/doc
  API updates via Twitter:http://twitter.com/twitterapi
  Issues/Enhancements Tracker:
 http://code.google.com/p/twitter-api/issues/list
  Change your membership to this group:
 http://groups.google.com/group/twitter-development-talk

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: randomly 401 error

2010-11-29 Thread themattharris
Hi Alvin,

The error in that response tells me your signature is incorrect.
Double check you are generating your signature using the algorithm
described here:
http://dev.twitter.com/auth#signing-requests

In particular I notice the parameters in your GET request are not in
lexicographical order, and so I wonder if they may not be in order in
your signature base string.

Best,
Matt

On Nov 24, 10:10 pm, Alvin Wang alvin0...@gmail.com wrote:
 hello, Matt

 After removing the symbol  and parameter realm, the frequency of
 401 is lower.
 But it becomes the problem as I attach below

 http://9.share.photo.xuite.net/u9011022/19d319b/4424859/170775808_x.jpg

 On 11月25日, 上午2時32分, Matt Harris thematthar...@twitter.com wrote:







  Hey Alvin,

  Your URL looks badly formed as it includes
  .../home_timeline.json?count=5 I would expect to see
  .../home_timeline.json?count=5...
  (so no  after the ?). You also have realm in your query string when it
  isn't needed. Realm is optional and when used, is only used in the
  Authorization header. When using OAuth in the query string you shouldn't
  pass realm. Your parameters should also be in lexicographical order.

  In your case I would have expected your URL to look like this:

 http://api.twitter.com/1/statuses/home_timeline.json?count=5oauth_co...
  page=1

  You can read more about signing requests on our developer resources site:
 http://dev.twitter.com/pages/auth#signing-requests

  Best
  @themattharris
  Developer Advocate, Twitterhttp://twitter.com/themattharris

  2010/11/23 Alvin Wang alvin0...@gmail.com

   hello Matt,
   here is the image when 401 occurs.

  http://dl.dropbox.com/u/162763/1.png

   On 11月23日, 下午2時17分, Matt Harris thematthar...@twitter.com wrote:
Hey Alvin,

So the community and developers can help you we'll need to know a little
   bit
more about the error you are receiving. Things like the API request you
   are
making, the request basestring, and the full response you get back are
   good
things to include.

Be careful to not include any passwords or OAuth secrets in anything you
share.

Best,
@themattharris
Developer Advocate, Twitterhttp://twitter.com/themattharris

2010/11/22 Alvin Wang alvin0...@gmail.com

 Are there any other solutions? Retry will still got 401 randomly. Just
 wondering is there any twitter tech person can help?

 On 11月23日, 上午3時28分, Nick Bradbury nick.bradb...@gmail.com wrote:
  I also ran into this problem, even though I knew the signature was
  fine.  This post from a Twitter Developer Advocate indicates that
 a401may be due to Twitter being stressed:

  http://www.devcomments.com/re-intermittent-401-and-502-during-oauth-p...

  In my case, ignoring the401and resending the request a little later
  solved the problem the majority of the time.

  On Nov 22, 2:43 am, Alvin Wang alvin0...@gmail.com wrote:

   Hi,
   I am currently developing an application using twitter api.
   However, i will ramdomly receive401error (invalid signature).
   Sometime it's working fine but sometime are not.
   Can you please help us to resolve this problem?

   BR,
   Alvin- 隱藏被引用文字 -

  - 顯示被引用文字 -

 --
 Twitter developer documentation and resources:
  http://dev.twitter.com/doc
 API updates via Twitter:http://twitter.com/twitterapi
 Issues/Enhancements Tracker:
http://code.google.com/p/twitter-api/issues/list
 Change your membership to this group:
http://groups.google.com/group/twitter-development-talk

   --
   Twitter developer documentation and resources:http://dev.twitter.com/doc
   API updates via Twitter:http://twitter.com/twitterapi
   Issues/Enhancements Tracker:
  http://code.google.com/p/twitter-api/issues/list
   Change your membership to this group:
  http://groups.google.com/group/twitter-development-talk

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: xAuth request returns 401, need help

2010-11-18 Thread themattharris
Hey Chrys,

A couple of things to check first:

1. Have you been granted xAuth access?
2. Double check the timestamp of your request is within 10 or so
minutes of the time returned by Twitter's servers. Our server time is
in UTC.
3. Verify your encoding is correct. For example: a password like ab$
%123 should be in your basestring as ab%2524%2525%2526123 and in your
post body as ab%24%25%26123.

Best,
Matt

On Nov 18, 5:31 pm, Chrys Bader chr...@gmail.com wrote:
 *bump*

 I've run my base string through an oAuth verifier (http://quonos.nl/
 oauthTester/), and it all checks out!

 Any ideas?

 On Oct 27, 4:50 pm, Chrys Bader chr...@gmail.com wrote:







  Hey all,

  This is my first post in this group, hi!

  I am having trouble making a request 
  onhttps://api.twitter.com/oauth/access_token.
  I've been at this for 2 days and I can't make any progress.  I feel
  like everything matches up with all examples, documentation, and other
  forum posts perfectly.

  Here is my post body:

  x_auth_username=oauth_test_execx_auth_password=twitter-
  xauthx_auth_mode=client_auth

  Here is my base string (using the example's test credentials):

  POSThttps%3A%2F%2Fapi.twitter.com%2Foauth
  %2Faccess_tokenoauth_consumer_key%3DJvyS7DO2qd6NNTsXJ4E7zA
  %26oauth_nonce%3DE0E37C06-F12A-407B-8D80-20C78FF6183A
  %26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp
  %3D1288223176%26oauth_version%3D1.0%26x_auth_mode%3Dclient_auth
  %26x_auth_password%3Dtwitter-xauth%26x_auth_username%3Doauth_test_exec

  Here is my Authorization header:

  OAuth oauth_timestamp=1288223176, oauth_nonce=E0E37C06-
  F12A-407B-8D80-20C78FF6183A, oauth_version=1.0,
  oauth_consumer_key=JvyS7DO2qd6NNTsXJ4E7zA,
  oauth_signature_method=HMAC-SHA1, oauth_signature=IwPFrvb0PExyS
  %2F2QQvtbelsWk48%3D

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: Streaming API, Basic Auth Ok, OAuth Unauthorized?

2010-10-25 Thread themattharris
Hey everyone,

So OAuth encoding can get confusing and lead to situations like this
so i'll go through a very verbose walkthrough to hopefully explain how
it all works.

The key section of the specification explaining this part is
3.4.1.3.2:
http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2

Assuming my parameters are POST parameters and are as follows:

key | value

track | twitter
follow | 1528912,9512582
oauth_consumer_key | Oauth_Consumer_Key
oauth_nonce | nonce123
oauth_signature_method | HMAC-SHA1
oauth_timestamp | 1288042714
oauth_token | My_tokeN
oauth_version | 1.0

Now following 3.4.1.3.2
1. Parameter names and values are encoded according to Section 3.6.
Section 3.6 of the spec says:
The values are then escaped using the [RFC3986] percent-encoding
(%XX) mechanism as follows:
  *  Characters in the unreserved character set as defined by
[RFC3986], Section 2.3 (ALPHA, DIGIT, -, ., _, ~) MUST NOT be
encoded.
  *  All other characters MUST be encoded.
  *  The two hexadecimal characters used to represent encoded
characters MUST be uppercase.

Knowing this our parameters therefore become:
key | value

track | twitter
follow | 11528912%2C9512582
oauth_consumer_key | OauthConsumerKey
oauth_nonce | nonce123
oauth_signature_method | HMAC-SHA1
oauth_timestamp | 1288042714
oauth_token | My_tokeN
oauth_version | 1.0

2. The parameters are sorted by name, using ascending byte value
ordering.  If two or more parameters share the same name, they are
sorted by their value.

key | value

follow | 11528912%2C9512582
oauth_consumer_key | OauthConsumerKey
oauth_nonce | nonce123
oauth_signature_method | HMAC-SHA1
oauth_timestamp | 1288042714
oauth_token | My_tokeN
oauth_version | 1.0
track | twitter

3. The name of each parameter is concatenated to its corresponding
value using an = character (ASCII code 61) as a separator, even if
the value is empty.

key=value

follow=11528912%2C9512582
oauth_consumer_key=OauthConsumerKey
oauth_nonce=nonce123
oauth_signature_method=HMAC-SHA1
oauth_timestamp=1288042714
oauth_token=My_tokeN
oauth_version=1.0
track=twitter

4. The sorted name/value pairs are concatenated together into a single
string by using an  character (ASCII code 38) as separator.

follow=11528912%2C9512582oauth_consumer_key=OauthConsumerKeyoauth_nonce=nonce123oauth_signature_method=HMAC-
SHA1oauth_timestamp=1288042714oauth_token=My_tokeNoauth_version=1.0track=twitter


This concatenated string of parameters is the result of the
normalization part of 3.4.1.1.5. We still have to complete stage 5
which says to encode that string.

Doing this gives:
follow%3D11528912%252C9512582%26oauth_consumer_key%3DOauthConsumerKey
%26oauth_nonce%3Dnonce123%26oauth_signature_method%3DHMAC-
SHA1%26oauth_timestamp%3D1288042714%26oauth_token%3DMy_tokeN
%26oauth_version%3D1.0%26track%3Dtwitter

In this example, assuming we are POSTing to 
http://stream.twitter.com/1/statuses/filter.json
with the parameters already processed - our basestring becomes:

POSThttp%3A%2F%2Fstream.twitter.com%2F1%2Fstatuses
%2Ffilter.jsonfollow%3D11528912%252C9512582%26oauth_consumer_key
%3DOauthConsumerKey%26oauth_nonce%3Dnonce123%26oauth_signature_method
%3DHMAC-SHA1%26oauth_timestamp%3D1288042714%26oauth_token%3DMy_tokeN
%26oauth_version%3D1.0%26track%3Dtwitter

I hope that helps,
@themattharris



On Oct 25, 3:20 pm, bradley.meck bradley.m...@gmail.com wrote:
 Correct, I still had the issue when escaping track= Escaping
 params individually did not work either. Still able to tweet though...
 Maybe it is a hint at the trouble being more/different than double
 encoding?

 Cheers,
 Bradley

 On Oct 25, 4:59 pm, Ciaran ciar...@gmail.com wrote:







  On Mon, Oct 25, 2010 at 10:53 PM, bradley.meck bradley.m...@gmail.com 
  wrote:
   So in my case i just encodeURIComponent somewhere? I tried on the POST
   params and it did not work, nor did the 4 permutations of api-key/
   secret and access-token-key/secret.

  Odd, Escaping track=+tracking.join(,)+count=0 should work ?
  -cj.

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: Snowflake: An update and some very important information

2010-10-18 Thread themattharris
Thanks to @gotwalt for spotting the missing commas.

Fixed JSON sample ...

[
  {
coordinates: null,
truncated: false,
created_at: Thu Oct 14 22:20:15 + 2010,
favorited: false,
entities: {
  urls: [
  ],
  hashtags: [
  ],
  user_mentions: [
{
  name: Matt Harris,
  id: 777925,
  id_str: 777925,
  indices: [
0,
14
  ],
  screen_name: themattharris
}
  ]
},
text: @themattharris hey how are things?,
annotations: null,
contributors: [
  {
id: 819797,
id_str: 819797,
screen_name: episod
  }
],
id: 12738165059,
id_str: 12738165059,
retweet_count: 0,
geo: null,
retweeted: false,
in_reply_to_user_id: 777925,
in_reply_to_user_id_str: 777925,
in_reply_to_screen_name: themattharris,
user: {
  id: 6253282,
  id_str: 6253282
},
source: web,
place: null,
in_reply_to_status_id: 12738040524,
in_reply_to_status_id_str: 12738040524
  }
]

Best,
@themattharris

On Oct 18, 5:19 pm, Matt Harris thematthar...@twitter.com wrote:
 Last week you may remember Twitter planned to enable the new Status ID
 generator - 'Snowflake' but didn't. The purpose of this email is to explain
 the reason why this didn't happen, what we are doing about it, and what the
 new release plan is.

 So what is Snowflake?
 --
 Snowflake is a service we will be using to generate unique Tweet IDs. These
 Tweet IDs are unique 64bit unsigned integers, which, instead of being
 sequential like the current IDs, are based on time. The full ID is composed
 of a timestamp, a worker number, and a sequence number.

 The problem
 -
 Before launch it came to our attention that some programming languages such
 as Javascript cannot support numbers with 53bits. This can be easily
 examined by running a command similar to: (90071992547409921).toString() in
 your browsers console or by running the following JSON snippet through your
 JSON parser.

     {id: 10765432100123456789, id_str: 10765432100123456789}

 In affected JSON parsers the ID will not be converted successfully and will
 lose accuracy. In some parsers there may even be an exception.

 The solution
 
 To allow javascript and JSON parsers to read the IDs we need to include a
 string version of any ID when responding in the JSON format. What this means
 is Status, User, Direct Message and Saved Search IDs in the Twitter API will
 now be returned as an integer and a string in JSON responses. This will
 apply to the main Twitter API, the Streaming API and the Search API.

 For example, a status object will now contain an id and an id_str. The
 following JSON representation of a status object shows the two versions of
 the ID fields for each data point.

 [
   {
     coordinates: null,
     truncated: false,
     created_at: Thu Oct 14 22:20:15 + 2010,
     favorited: false,
     entities: {
       urls: [
       ],
       hashtags: [
       ],
       user_mentions: [
         {
           name: Matt Harris,
           id: 777925,
           id_str: 777925,
           indices: [
             0,
             14
           ],
           screen_name: themattharris
         }
       ]
     },
     text: @themattharris hey how are things?,
     annotations: null,
     contributors: [
       {
         id: 819797,
         id_str: 819797,
         screen_name: episod
       }
     ],
     id: 12738165059,
     id_str: 12738165059,
     retweet_count: 0,
     geo: null,
     retweeted: false,
     in_reply_to_user_id: 777925,
     in_reply_to_user_id_str: 777925,
     in_reply_to_screen_name: themattharris,
     user: {
       id: 6253282
       id_str: 6253282
     },
     source: web,
     place: null,
     in_reply_to_status_id: 12738040524
     in_reply_to_status_id_str: 12738040524
   }
 ]

 What should you do - RIGHT NOW
 --
 The first thing you should do is attempt to decode the JSON snippet above
 using your production code parser. Observe the output to confirm the ID has
 not lost accuracy.

 What you do next depends on what happens:

 * If your code converts the ID successfully without losing accuracy you are
 OK but should consider converting to the _str versions of IDs as soon as
 possible.
 * If your code has lost accuracy, convert your code to using the _str
 version immediately. If you do not do this your code will be unable to
 interact with the Twitter API reliably.
 * In some language parsers, the JSON may throw an exception when reading the
 ID value. If this happens in your parser you will need to ‘pre-parse’ the
 data, removing or replacing ID parameters with their _str versions.

 Summary
 -
 1) If you develop in Javascript, know that you will have to update your code
 to read the string version instead of the integer version.

 2

[twitter-dev] Re: Search with geocode does not respect search radius?

2010-10-11 Thread themattharris
Thanks for filing the ticket on this, we'll post there when a fix is
deployed. Progress wise I checked in with the team today and they
continue to work on a fix.

To keep things connected there is another thread that was discussing
the issue with geocoded search here:

http://groups.google.com/group/twitter-development-talk/browse_thread/thread/c8826d16b613cf23/79e3d726021652e9#79e3d726021652e9

More information will be filed on the ticket here:
http://code.google.com/p/twitter-api/issues/detail?id=1930

Thanks for bearing with us whilst we work out what went wrong with the
location index and how to resolve it.

Best,
@themattharris

On Oct 10, 9:29 pm, Nick nick.fritzkow...@gmail.com wrote:
 We are having issues with this as well and it has completely broken
 our system.

 We have sent many support tickets but have received no response to
 them.

 It looks to be breaking plain searches to not just those requested via
 the API.

 Some examples of broken searches are:

 http://search.twitter.com/search?q=bigpond+near%3Aaustralia

 http://search.twitter.com/search.json?q=bigpondgeocode=-27.766513,13...

 These were working before this issue.

 Best Regards
 Nick Fritzkowski

 On Oct 6, 2:42 am, Matt Harris thematthar...@twitter.com wrote:



  This is a know issue which the team is working on at the moment. I'll
  post an update when a fix is deployed.

  ---
  @themattharris
  Developer Advocate, Twitterhttp://twitter.com/themattharris

  On Mon, Oct 4, 2010 at 8:36 PM, _ado adri...@tijsseling.com wrote:
   For what it's worth, I'm seeing the same issue. Radius parameter is
   completely ignored. Data returned for, for example, a 1 mile radius
   will return results spanning 60 miles.

   --
   Twitter developer documentation and resources:http://dev.twitter.com/doc
   API updates via Twitter:http://twitter.com/twitterapi
   Issues/Enhancements 
   Tracker:http://code.google.com/p/twitter-api/issues/list
   Change your membership to this 
   group:http://groups.google.com/group/twitter-development-talk

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: Woe is me, I can't seek what I find (or Search is failing me)

2010-10-11 Thread themattharris
Thanks for publishing this information. There is another thread
discussing the issue with the Geocode search not respecting the radius
of a search here:

http://groups.google.com/group/twitter-development-talk/browse_thread/thread/a80db3eff77a88fe

From that thread ticket 1930 was filed on our issue tracker which we
will update when a fix is deployed:
http://code.google.com/p/twitter-api/issues/detail?id=1930

I understand your reasons for the location tracking using the Search
API but wondered if you knew that the mentions search you are doing
can be carried out on using the Streaming API filter method. That
should cut down on the number or REST queries you need to make. More
information on that method is here:
http://dev.twitter.com/pages/streaming_api_methods#statuses-filter

Out of curiosity what is the third column of your figures represent?
It may be possible to track that one using the Streaming API as well.

Best
@themattharris

On Oct 11, 10:21 am, @IDisposable idisposa...@gmail.com wrote:
  The Location search has been VERY unstable, and uses this typical
  search:http://search.twitter.com/search.atom?rpp=100geocode=38.627522%2C-90...

 It's getting worse all the time!

 Is this what we can expect going forward?  If so, how can I follow all
 20+ people we used to get tweets from on the location search?
 I'll happily create an account and manage the lists/follows... but I'm
 pretty sure that will get me killed, and it will only be a snapshot
 based on current profile location strings that we have...

 Sure, I could suck the *-pipe, but without a filter criteria, I'm
 going to be seeing all tweets from the entire universe, which seems
 hella-wasteful to twitter and me...

 Day     Mentions        Location        Everything
 2010-09-13      4985    46801   53503
 2010-09-14      4719    48110   54589
 2010-09-15      4779    47599   54209
 2010-09-16      5143    47087   54312
 2010-09-17      5256    48363   55581
 2010-09-18      4888    40943   47237
 2010-09-19      5871    46008   53843
 2010-09-20      4990    46219   52826
 2010-09-21          49274   55933
 2010-09-22      5364    51567   58999
 2010-09-23      6866    42495   52967
 2010-09-24      6191    41107   50679
 2010-09-25      5673    36321   43950
 2010-09-26      6784    35168   44664
 2010-09-27      6346    32580   42192
 2010-09-28      5448    32528   41792
 2010-09-29      6038    40677   50472
 2010-09-30      5964    38116   47713
 2010-10-01      6615    38360   48302
 2010-10-02      5612    23107   32024
 2010-10-03      6728    22802   33328
 2010-10-04      5528    23990   33491
 2010-10-05      5116    38733   47023
 2010-10-06      5427    39041   47856
 2010-10-07      5733    30855   40742
 2010-10-08      6355    9459    22235
 2010-10-09      5894    8352    18691
 2010-10-10      7240    8399    20861
 2010-10-11      4017    5587    13010

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Re: #newtwitter and the API

2010-09-22 Thread themattharris
No new registration is needed, #newtwitter is being rolled out
gradually and at random.
For the API, only the related_results method requires you to have
access to #newtwitter.

Hope that helps,
@themattharris


On Sep 22, 2:22 pm, EastSideDev eastside...@gmail.com wrote:
 As app developers, do we need to re-register for the new #newtwitter?

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: Search API is acting weird.

2010-09-21 Thread themattharris
The adjusted since_id to xxx due to temporary error really means
this:
   the since_id was not specified so I went back as far as I could.
The earliest tweet is the database was 25075604044 so i used that.

For users who tweet more often this error can still occur but is less
likely. This is because the search results per page fit into the
available index and so no adjustment of since_id is required.

For less active accounts the error above occurs because search tries
to get n results per page. If there aren't n tweets in the available
index the since_id goes beyond what we have stored - so the message
above is displayed.

As for the other users not showing up when you search for them using
from:. There are many reasons for users not to show up in Search. The
most common one (and applicable to your account gena01) is there
haven't been any tweets in the last 5 days. Other reasons are
explained on our help site:
 
http://support.twitter.com/groups/32-something-s-not-working/topics/118-search/articles/66018-my-tweets-or-hashtags-are-missing-from-search-known-issue

Hope that's helpful,
@themattharris

On Sep 21, 8:22 am, Gena01 gen...@gmail.com wrote:
 So I've been messing with the search API and I am seeing some strange
 stuff going on.

 When I request:  http://search.twitter.com/search.json?q=to:evI get
 normal results.

 If i 
 requesthttp://search.twitter.com/search.json?q=to:aorhttp://search.twitter.com/search.json?q=to:gena01then
  I get a
 warning: adjusted since_id to 25075604044 due to temporary error.

 If I do from: instead of to: I also get these sort of
 discrepancies. For people like @ev I get feeds/tweets/etc for people
 not as popular I get nothing back.

 Is there something I am doing wrong or is search api broken?

 Gena01

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: Tweet Button counter url encoding

2010-09-17 Thread themattharris
Just wanted to let you know we've deployed some changes which should
have fixed this issue.
@themattharris

On Sep 14, 11:38 pm, Remo remo.siegw...@gmail.com wrote:
 Hi Matt

 Thank you for your response!

 The #newtwitter looks great btw!

 Cheers
 Remo

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: problem in twitter share

2010-09-17 Thread themattharris
Just wanted to let you know we've deployed some changes which should
have fixed this issue.
@themattharris


On Sep 8, 8:09 am, Tom van der Woerdt i...@tvdw.eu wrote:
 There's currently a bug involving URLs that include an  character.

 Tom

 On 9/8/10 1:02 PM, swati wrote:



  script src=http://platform.twitter.com/widgets.js; type=text/
  javascript/script
  div
     a href=http://twitter.com/share; class=twitter-share-button
        data-url=http://125.63.90.181/SPARC1/Functional/JobDetails.aspx?
  JobID=616links=true

        data-text= %=Name %
        data-related=anywhere:The Javascript API
        data-count=none
       Tweet/a

  when i pass data url as http://125.63.90.181/SPARC1/Functional/
  JobDetails.aspx?JobID=616links=true it says:

  'url' parameter does not contain a valid URL.

  what should i change to post it as a valid url

  please help 

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: list members cursor is wrong

2010-09-15 Thread themattharris
Hey Brad,

Your full request URL doesn't contain the cursor parameter. It looks
like when you add the OAuth parameters you are dropping the cursor
one.
We recommend, instead of using query string or the POST body for OAuth
paramters you instead use the authorisation header.

In your case this would mean your URL would be:

http://api.twitter.com/1/endlesscities/urban/members.json?cursor=1343981850785981701

and in your request headers you would have:

Authorization: OAuth oauth_consumer_key=MgdaAGLAt4VQzGKvoczhA,
oauth_nonce=68156293, oauth_signature=QkEP3%2BsCmz0C
%2FdjHJcdgUyTDbuI%3D, oauth_signature_method=HMAC-SHA1,
oauth_timestamp=1284515562, oauth_token=18904533-
Y1BfS5tRvV7FnrynYFIoLojrL4FjrS0CUCrZbyoNx, oauth_version=1.0

Hope that helps,
Matt

On Sep 14, 7:09 pm, Brad bdeg...@gmail.com wrote:
 Thanks, Matt,

 This is the full 
 requesthttp://api.twitter.com/1/endlesscities/urban/members.json?oauth_nonce...

 doing a urllib.urlopen( ) on that.

 This is the Python request object {'http_url': 'http://api.twitter.com/
 1/endlesscities/urban/members.json?cursor=1343981850785981701',
 'http_method': 'GET', 'parameters': {'oauth_nonce': '68156293',
 'oauth_timestamp': 1284515562, 'oauth_consumer_key':
 'MgdaAGLAt4VQzGKvoczhA', 'oauth_signature_method': 'HMAC-SHA1',
 'oauth_version': '1.0', 'oauth_token': '18904533-
 Y1BfS5tRvV7FnrynYFIoLojrL4FjrS0CUCrZbyoNx', 'oauth_signature':
 'QkEP3+sCmz0C/djHJcdgUyTDbuI='}}

 I get results back, so the auth is working, but the cursor stays the
 same.

 thanks for whatever insight you can give.

 On Sep 14, 10:37 am, Matt Harris thematthar...@twitter.com wrote:



  GET works fine for this method and when I test the cursors for your
  list below everything works correctly. So we can work out what is
  going on can you share the headers you are sending to the API.

  Also, you will want to update your URLs to the correct host. The
  correct URL to use ishttp://api.twitter.com/1/--making your
  request:
     http://api.twitter.com/1/endlesscities/urban/members.json?cursor=-1

  Best,
  Matt

  On Sun, Sep 12, 2010 at 6:44 PM, Brad bdeg...@gmail.com wrote:
   maybe I'm doing something wrong, but the cursor returned from the list
   members call seems to be misbehaving.

   if I hit:
  http://twitter.com/endlesscities/urban/members.json?cursor=-1

   it returns
   next_cursor:1343981850785981701, previous_cursor:0

   if I pass it that new cursor:
  http://twitter.com/endlesscities/urban/members.json?cursor=1343981850...

   it returns the same thing:
   next_cursor:1343981850785981701, previous_cursor:0

   What's up with that? This has cropped up thanks to switching from
   basic Auth to Oauth. I'm doing a GET because it won't allow me to do a
   POST.

   thanks in advance for any help.

   --
   Twitter developer documentation and resources:http://dev.twitter.com/doc
   API updates via Twitter:http://twitter.com/twitterapi
   Issues/Enhancements 
   Tracker:http://code.google.com/p/twitter-api/issues/list
   Change your membership to this 
   group:http://groups.google.com/group/twitter-development-talk?hl=en

  --

  Matt Harris
  Developer Advocate, Twitterhttp://twitter.com/themattharris

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: garbage in json api response?

2010-09-03 Thread themattharris
Thanks for the information collected on this. We're investigating this
issue at the moment and updates will be posted to our status blog:

http://status.twitter.com/post/1058895068/investigating-invalid-responses-from-the-api

Matt


On Sep 3, 8:44 am, Marsh Gardiner ma...@apigee.com wrote:
 I see it too. Here's a cached version of the 
 response:http://app.apigee.com/console/apigee-console-snapshots-128331720_...

 The same request with xml seems to be working 
 fine:http://app.apigee.com/console/apigee-console-snapshots-128331720_...

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: Twitter as a Publish/Subscribe service

2010-08-26 Thread themattharris
Hey VC,

Using Twitter for the purpose you describe seems similar to accounts
which provide a notification about a new blog post or a news article.
In those cases some context is provided about the link in the Tweet so
that the timeline is meaningful to somebody who stumbles across it.
You don't have to do that of course, but consider how an account which
publishes just URLs and tags would appear to others on twitter.com

In terms of the message, if you can fit it into 140 characters and not
post duplications you can post to Twitter. Remember though, the
Twitter API has rate limits, the main one for you being that only 1000
Tweets can be posted per day. There are additional limits which you
can read about on our developer resources website:
  http://dev.twitter.com/pages/rate-limiting

The model of having users subscribe to messages through your
application without having Twitter accounts is your call. As long as
you stay within our Terms of Service there is no problem. The Rules
of the Road are available on our developer website:
  http://dev.twitter.com/pages/api_terms

Hope that helps explain a little about the Twitter API in relation to
your idea,
Matt

On Aug 19, 11:44 pm, VirtualCoder email.workbe...@gmail.com wrote:
 Hi Folks,

 I am building an Adobe AiR application in which a community of users
 will be tagging various URL pages.  Whenever someone tags a new URL, I
 need to broadcast that new URL to all of the users who have
 installed my AiR application.

 Can Twitter API help me with this?

 There are a couple of issues to keep in mind.

 (1) Only URL's need to be broadcast with a couple of criptic tag-id's
 - so none of this would resemble a typical Twitter message that is
 made up of words and sentences.

 (2) The same application would need to subscribe to messages from a
 single Twitter user, without forcing application users to create their
 own individual accounts.

 If not twitter, is there some other service that provides free and
 reliable messaging services, as described above.

 Thanks again,
 VC

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Re: Twitter Button Counts

2010-08-25 Thread themattharris
://ldv.org.uk/20680isa
 shortlink 
 forhttp://www.libdemvoice.org/office-of-the-public-guardian-finally-star...
 I'm just expecting them to count the number of tweets 
 withhttp://ldv.org.uk/20680
 in them as per the spec.

 Ryan

 On Aug 19, 12:53 am, Jonathan Strauss jonat...@snowballfactory.com
 wrote:

  I'm pretty sure they're only indexing a subset of redirect links 
  for
  the count at this point. So, the 4 or 5 being counted are probably
  ones that were shared with t.co or bit.ly.

  -jonathan

  --
  Jonathan Strauss, Co-Founderhttp://snowballfactory.com

  Campaign tracking for social media -http://awe.sm
  A smarter way to update Facebook from Twitter -http://tweetpo.st
  Sharecount button for Facebook -http://www.fbshare.me

  On Aug 18, 12:12 pm, artesea ryancul...@gmail.com wrote:

   Happens in all browsers even days after the number of tweets is 
   up to
   4 or 5 (ok not a busy site but still zero make it look crap)
   Like I said before clicking on the number brings me to a page 
   showing
   all the tweets so they are there, just for some reason twitter 
   when
   doing the count lookup isn't finding them (url to short??? 
   doesn't
   like .org.uk???)
   My shortlinks are the same for each post as I'm just using the
   wordpress post id with a 301 redirect.
   Not seeing any reply from Twitter other than it's probably a 
   cache
   issue, which it clearly isn't.

   Ryan

   On Aug 16, 1:13 pm, Tom van der Woerdt i...@tvdw.eu wrote:

I have one theory and that is that the Twitter button caches 
the
numbers. Try opening a different browser - I've heard people 
that said
that this works.

You should also make sure that you don't generate a new 
shortlink for
every tweet.

Tom

   --

   Matt Harris
   Developer Advocate, Twitterhttp://twitter.com/themattharris

  --

  Matt Harris
  Developer Advocate, Twitterhttp://twitter.com/themattharris

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk?hl=en


[twitter-dev] Introducing the Tweet Button

2010-08-12 Thread themattharris
Hey everyone,

Today we’re launching the Tweet Button to make it easy for your users
to share your website with their followers. When they click on the
Tweet Button, a Tweet box will appear pre-populated with a message and
link chosen by you. Once they have sent a Tweet they can choose to
follow accounts recommended by you. All of this happens on your
website, so the user never has to leave.

You have complete control over the suggested text of the Tweet Button,
who the Tweet should be attributed to and recommendations of who to
follow. All of this is possible through a line of javascript and a few
URL parameters or data attributes of a link.

To add this to your own site grab it from http://twitter.com/tweetbutton,
or create your own using our developer documentation,
http://dev.twitter.com/pages/tweet_button

Read more about the Tweet Button on our blog,
http://blog.twitter.com/2010/08/pushing-our-tweet-button.html

Best
Matt

--


Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris


[twitter-dev] Promoted Content: API Changes

2010-08-09 Thread themattharris
Hey Developers,

As you might know, this year Twitter launched a suite of Twitter
Promoted Products, including Promoted Tweets (http://blog.twitter.com/
2010/04/hello-world.html) and Promoted Trends, which advertisers can
use to deepen their engagement with Twitter users.

To date, these products have been shown to users on Twitter.com. Over
time, we plan to extend the products to ecosystem partners. Today, we
made an update to one of our APIs that gets us closer to that
objective.

Clients using the API will see new fields related to promoted content
in the response they get back from the /1/trends/current.json request
and any local trends requests. These two new data points will show in
the json response as events and promoted_content.

We are still building the data points out and have more updates to
make. Whilst that is happening, the two data points won't be able to
return any useful content, and instead will have a value of 'null'.

Over the next few months, we will begin beta testing with a handful of
desktop applications. During this period, we aim to learn a lot, and
we will apply those lessons when we expand distribution of Twitter
Promoted Products to the broader ecosystem.

We'll continue to keep you posted on other developments and changes as
they happen.

Best,
Matt


--


Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris


[twitter-dev] Re: Promoted Content: API Changes

2010-08-09 Thread themattharris
Thanks for the replies, it’s really helpful to know what your thoughts
and questions about the promoted products are. I’ve caught up with the
team who are working on this and discussed your questions with them.
Here's what I find out.

We began testing Promoted Trends in June as an extension of our
Promoted Tweets which were launched in April. So we all have the same
understanding of what these products are i’ll explain them here.

A Promoted Trend is one a topic which is already trending on Twitter
but not popular enough to make it onto the Trending Topics list. A
topic which isn’t popular on Twitter already cannot become a Promoted
Trend.

A Promoted Tweet is a Tweet which businesses and organisations want to
highlight to a wide range of users. They have the same functionality
as a regular Tweet except a Promoted Tweet will be highlighted at the
top of some of our search results pages.

Until today the Promoted Tweets and Trends were only shown to visitors
on twitter.com. The API additions today take us closer to syndicating
both those products to third parties. How this works out and ends up
with everybody is one of the reasons we started the beta test with a
handful of partners.

As developers the benefit to you of displaying the Promoted Products
is that Twitter will share revenue with you. We’re still working out
the exact value and will keep you informed on developments.

For users the benefit is that they will see time, context and event
sensitive trends promoted by advertising partners. Only Tweets which
users engage with will be kept. This means if users don’t interact
with a Promoted Tweet it will disappear.

Some more information is on our support site:
http://support.twitter.com/articles/142161-advertisers
http://support.twitter.com/groups/35-business/topics/127-frequently-asked-questions/articles/142101-promoted-tweets

Best,
Matt

On Aug 9, 1:12 pm, scotth_uk satsc...@gmail.com wrote:
 I Agree with Tom. Please explain more on how this will benefit end-
 users and developers and not simply be a revenue stream for you.

 Thanks.

 On Aug 9, 8:50 pm, Tom van der Woerdt i...@tvdw.eu wrote:



  Hi Matt and other developers,

  If I understand correctly, Promoted Trends are advertisements, and they
  aren't necessarily trending topics. Basically what Twitter is trying to
  do here is let the desktop clients show Twitter's advertisements as
  well? Is there any benefit to the developers and/or the users for doing
  this?

  Correct me if I am completely wrong (wouldn't be the first time today)
  but Twitter is offering it's own advertisements to developers - I don't
  see why any developer would implement that.

  Tom

  On 8/9/10 9:36 PM, themattharris wrote:

   Hey Developers,

   As you might know, this year Twitter launched a suite of Twitter
   Promoted Products, including Promoted Tweets (http://blog.twitter.com/
   2010/04/hello-world.html) and Promoted Trends, which advertisers can
   use to deepen their engagement with Twitter users.

   To date, these products have been shown to users on Twitter.com. Over
   time, we plan to extend the products to ecosystem partners. Today, we
   made an update to one of our APIs that gets us closer to that
   objective.

   Clients using the API will see new fields related to promoted content
   in the response they get back from the /1/trends/current.json request
   and any local trends requests. These two new data points will show in
   the json response as events and promoted_content.

   We are still building the data points out and have more updates to
   make. Whilst that is happening, the two data points won't be able to
   return any useful content, and instead will have a value of 'null'.

   Over the next few months, we will begin beta testing with a handful of
   desktop applications. During this period, we aim to learn a lot, and
   we will apply those lessons when we expand distribution of Twitter
   Promoted Products to the broader ecosystem.

   We'll continue to keep you posted on other developments and changes as
   they happen.

   Best,
   Matt

   --

   Matt Harris
   Developer Advocate, Twitter
  http://twitter.com/themattharris


[twitter-dev] Re: SSL Certificates renewal on Tuesday 20th July

2010-07-20 Thread themattharris
A quick update on this renewal process..

As the site only fully recovered this morning from the issues of
yesterday we postponed rolling out the new SSL certificates.
We now plan to make the SSL change at 5PM PDT (1AM GMT).

Best,
Matt

On Jul 19, 5:56 pm, themattharris thematthar...@twitter.com wrote:
 Hey developers,

 Many of you have noticed our SSL certificate for api.twitter.com will
 expire on 26th July 2010, with mobile.twitter.com and
 search.twitter.com soon after. We wanted to give you a heads up that
 tomorrow at 2PM PDT (10PM GMT) we plan to upgrade the SSL certificate
 on our servers. As our servers are load balanced we expect this to be
 unnoticeable to you and your users but, as we will need to restart the
 servers there is a chance a user may get a failed request.

 The certificate will be from the same vendor as before and be a
 wildcard certificate for *.twitter.com. The certificate will be valid
 for 2 years but could be changed or upgraded as the need requires.
 We'll let you know beforehand if we will be doing that.

 Best,
 Matt


[twitter-dev] SSL Certificates renewal on Tuesday 20th July

2010-07-19 Thread themattharris
Hey developers,

Many of you have noticed our SSL certificate for api.twitter.com will
expire on 26th July 2010, with mobile.twitter.com and
search.twitter.com soon after. We wanted to give you a heads up that
tomorrow at 2PM PDT (10PM GMT) we plan to upgrade the SSL certificate
on our servers. As our servers are load balanced we expect this to be
unnoticeable to you and your users but, as we will need to restart the
servers there is a chance a user may get a failed request.

The certificate will be from the same vendor as before and be a
wildcard certificate for *.twitter.com. The certificate will be valid
for 2 years but could be changed or upgraded as the need requires.
We'll let you know beforehand if we will be doing that.

Best,
Matt


[twitter-dev] If you had rate limits reset issues today you should be ok now

2010-07-08 Thread themattharris
Those of you who were having rate limit reset issues today (Thursday
8th July) should be ok now. If not let us know by replying to this
message letting us know:

* The IP of the computer which is making the requests
* A username you are making requests for
* The time you tried to make the request
* The request you were trying to make
* Any response headers you received

Thanks

Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris


[twitter-dev] Rate limits should be resetting now

2010-07-07 Thread themattharris
Hey everyone,

We've been working on the rate limit issue which has been affecting
many of you and believe we now have it fixed. As the issue affected
people in different ways we want to be check your applications are
working again.

If your rate limit is still not resetting please email a...@twitter.com
the following information:

* The IP of the computer which is making the requests
* A username you are making requests for
* The time you tried to make the request
* The request you were trying to make
* Any response headers you received

Thanks,
Matt


[twitter-dev] Re: Twitter Goodies

2010-06-30 Thread themattharris
Hi Nick,

The widgets offer vary basic interaction with Twitter. If they do not
receive results it is likely Twitter is over capacity and results will
become available once service is resumed.

As such, they don't any customizing over the options available on the
widget configuration screen.

If you are interested in building a more reliable widget you can find
resources and information on our Developer Resources site http://dev.twitter.com

Hope that helps.
Matt

On Jun 30, 1:34 pm, Nick nikhlesh.agra...@googlemail.com wrote:
 can anybody, Please assist?

 On Jun 29, 11:39 am, Nick nikhlesh.agra...@googlemail.com wrote:



  Hi Support

  I am using twitter goodies to show the recent tweets on my website.
  But sometimes I dint get any response from twitter and hence was not
  able to display anything on the website.

  Is there any way I can handle such exceptions in twitter goodies?

  Regards
  Nikhlesh


[twitter-dev] Re: Rate limit reduction to 75?

2010-06-29 Thread themattharris
Due to the high amount of traffic we are seeing at the moment we have
needed to lower the rate limit to 75 to ensure Twitter remains
available to as wide an audience as possible. We are posting updates
as the situation develops on http://status.twitter.com.

Thanks for your patience.

Matt

On Jun 29, 9:45 am, SM sanja...@gmail.com wrote:
 I have an OAuth app (http://mowglii.com/itsy) and I'm getting errors
 saying I'm limited to 75 requests per hour. Huh?


[twitter-dev] Rate Limit Update

2010-06-29 Thread themattharris
Hey everyone,

We announced last week that we would be dynamically changing rate
limits and many of you noticed we have been doing that. There are many
techniques we've used and improvements we will continue to make to
deal with our capacity issues. Reducing the API rate-limit is not the
first or only method we use and is one we try to avoid if possible.
However, it is also one of the more effective ways to reduce load and
ensure that the Twitter service remains available to the greatest
number of users.

To ensure we can maintain service we're lowering the default rate
limit to 175.

Even with this lowered default limit we will still have times when we
need to dynamically change the allowed requests. Today is one of those
days where that has been required. In these situations you can stay up
to date by visiting http://status.twitter.com and following
@twitterapi.

We're all in the same boat here, Twitter uses the API for it's own
services so we also feel these reduced limits. All the Twitter for
mobile devices and mobile sites are being affected by this change. But
we need to do this to ensure the site and API stay available to as
wide an audience as possible. We don't want to be delivering service
failures to everyone.

We know there are still some questions around the dynamic rate
limiting and we have put together an FAQ at 
http://dev.twitter.com/pages/rate_limiting_faq
which we hope answers them.

Thank you for your patience.

Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris


[twitter-dev] Re: Geo-caching Without Lat/Long

2010-06-23 Thread themattharris
To clarify the situation with UTF-8 characters.

Special UTF-8 characters are treated the same as the standard
alphanumeric set, in that we will count each one as a single letter.
So a string like wondering what's happening … will be treated as 27
characters (without the quotes).

When we receive a Tweet with UTF-8 characters in it we convert them
into their HTML entity representation to ensure consistency between
clients and reliable storage in the databases. This means, when you
query the API, you may notice the Tweet has more than 140 characters
in it. This is expected and is a result of the UTF-8 conversion.

You can read more about how we count characters on the dev.twitter
site [1].

Hope that answers your questions,
Matt

1. http://dev.twitter.com/pages/counting_characters

On Jun 11, 3:18 pm, Sam Ramji sra...@apigee.com wrote:
 We've built a free tool with similar capabilities but including OAuth
 authentication and contextual links to the full Twitter API, and no
 login required in order to save API calls.

 You can see the same lat/long query here:

 http://app.apigee.com/console/5ffbfabd-04c0-4802-a71d-542c23a1ec0e/re...

 Hope this is helpful - we are seeking feedback on the tool if you have
 any.

 Thanks,

 Sam

 On Jun 11, 9:48 am, Bryan bryan.p...@gmail.com wrote:



  Hey Abraham. The above example is dated. My point is appending
  max_result=1 onto any verified result results in a 404:

 http://hurl.it/hurls/08a6b684b494cab6138754d7b7470d9895968d59/88bbdc8...

  is okay, but with max_results=1:

 http://hurl.it/hurls/df8773b96e453cfd5426123c3ba4354fc2d96769/6d952ea...

  returns a 404

  Thanks for the link; that's a very useful tool!

  On Jun 11, 11:40 am, Abraham Williams 4bra...@gmail.com wrote:

   The lat/long you are passing to the API are in the Yellow Sea so Twitter 
   is
   404ing as it does not have any places near there.

  http://hurl.it/hurls/db27e3e9bce56f7f9a8209b935af6a25d5fa5677/2775b26...

   Abraham
   -
   Abraham Williams | Hacker Advocate |http://abrah.am
   @abraham |http://projects.abrah.am|http://blog.abrah.am
   This email is: [ ] shareable [x] ask first [ ] private.

   On Fri, Jun 11, 2010 at 07:28, Bryan bryan.p...@gmail.com wrote:
Matt--

Okay thanks for the reply. I'm building a news aggregator so the goal
was to enter the location manually. Still, I'm having trouble with the
geo-coding method. I'm using Abraham's php library and I do the
following:

       $location = $connection-get('geo/reverse_geocode', array('lat' 
=
'37.75' , 'long' = '122.68'));
       echo $connection-http_code;

Which returns 404. $location-id is empty. Any thoughts as to what I'm
doing wrong?

On Jun 11, 9:21 am, Matt Harris thematthar...@twitter.com wrote:
 Hey Bryan,

 Status updates only accept lat/long or place_id. There isn't a way of
 providing plain text locations for these fields. If you wish to 
 display a
 textual representation of where someone is on your app you would need 
 to
 carry out a reverse geocode first.

 I don't know the method you are using to obtain the location but
generally
 we see developers use the lat/long returned by the browser or device.

 One thing that might be useful to know is that we perform a reverse
lookup
 on the lat/long when we display the tweet, converting it to some 
 textual
 description like SoMa, San Francisco, or from here as appropriate.

 Hope that answers your question,
 Matt

 On Fri, Jun 11, 2010 at 6:41 AM, Bryan bryan.p...@gmail.com wrote:
  Hey everyone, is there a way to geo-tweet with the API without 
  knowing
  the Lat/Long? In other words, can I say San Francisco, CA or 
  search
  for valid place_id's with this name? I'm trying to make my user
  interface as user-friendly as possible, and asking for lat/long for 
  my
  userbase won't work. I also want to rely on as few as API's as
  possible, so I'd prefer not to run my name through Google's Map API
  and then through the reverse geocode API on twitters. Thanks.

 --

 Matt Harris
 Developer Advocate, Twitterhttp://twitter.com/themattharris


[twitter-dev] Re: trivial doubt

2010-06-22 Thread themattharris
Hi André,

Looking at your code it looks like you have added the line:
  id : 'twitterdiv'
but forgotten to put the comma after it.
If you add the comma the widget will work.

Matt

You don't need the div id = twitterdiv/div as the widget will
automatically create that for you.

On Jun 22, 6:25 am, André Lima azdr3mi...@gmail.com wrote:
 any suggestion of what I'm doing wrong here??

 On 21 jun, 22:00, André Luís Moura Lima azdr3mi...@gmail.com wrote:



  Hello everybody,
  I'm doing some tests with twitter widget profile...i do everything right on
  the site,copy the resulting code to my html,but the twitter widget is not
  shown,it isn't rendering.What can be wrong?for those who can help me,I will
  post the code here.I guess I'm doing some confusion with some html tags like
  body,head,html,etc...are they necessary to the code work right?anyway,i hope
  so,cause this code that I'm posting is,obviously,an example...the real html
  have head,body,html tags.anyway,here is the code:
  div id = twitterdiv/div
  script src=http://widgets.twimg.com/j/2/widget.js;/script
  script
  new TWTR.Widget({
    id : 'twitterdiv'
    version: 2,
    type: 'profile',
    rpp: 4,
    interval: 6000,
    width: 250,
    height: 300,
    theme: {
      shell: {
        background: '#33',
        color: '#ff'
      },
      tweets: {
        background: '#00',
        color: '#ff',
        links: '#4aed05'
      }
    },
    features: {
      scrollbar: true,
      loop: false,
      live: false,
      hashtags: true,
      timestamp: true,
      avatars: false,
      behavior: 'all'
    }}).render().setUser('andre').start();

  /script


[twitter-dev] Re: oAuth and Direct Message

2010-06-21 Thread themattharris
Hey Dave,

Looking through your signature base string just a couple of things
which jump out and would be worth checking:
* There are some spaces in the nonce and timestamp where there
shouldn't be. In all honesty this is most likely email formatting
problems but I wanted to point it out just in case.
* Your text is encoded three times which isn't good and could be the
source of the problem depending on what else you are doing when you
send your request. I want to rule it out as a symptom so can you take
a look at that, and why it is encoded one extra time. When I run tests
I see my text string similar to text%3Djust%2520a%2520simple
%2520message%2520test. yours, in it's current encoding, would read as
just%252520a%252520simple%252520message%252520test.

Matt

On Jun 18, 9:54 am, Acme Dave acmedav...@gmail.com wrote:
 Thanks Matt,

 I am still having problems. Here is the output of my test app.
 I am able to update status. So I know my POST logic is working correctly.

 Info sigBase: POSThttp%3A%2F%2Fapi.twitter.com
 %2F1%2Fdirect_messages%2Fnew.xmloauth_consumer_key%3DCKEY%26oauth_nonce%3D 
 5855976111049200858%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp% 
 3D1276879684%26oauth_token%3DATOKEN%26oauth_version%3D1.0%26text%3Dyes%2525 
 20very%252520good%252520message%26user%3DTOUSER

 Info url:http://api.twitter.com/1/direct_messages/new.xml

 ERROR during token access exchange: java.io.IOException: Server returned
 HTTP response code: 401 for 
 URL:http://api.twitter.com/1/direct_messages/new.xml

 Extended error response: ?xml version=1.0 encoding=UTF-8?hash
 request/1/direct_messages/new.xml/request  errorIncorrect
 signature/error/hash

 On Fri, Jun 18, 2010 at 9:21 AM, themattharris 
 thematthar...@twitter.comwrote:



  Hi Dave,

  I seemed to have missed your message originally. Are you still
  experiencing problems with this?

  In answer to your question there isn't anything special required for
  signing requests to send direct messages. If you are still having
  problems can you provide us with your signature base string (without
  any tokens/keys).

  Matt

  On Jun 11, 9:32 am, ds acmedav...@gmail.com wrote:
   I am having trouble sending a direct message with:
 http://api.twitter.com/1/direct_messages/new.xml

   I have been able to successfully post status updates with my code
   using oAuth.
   I have a java based custom application that is working fine for these
   updates.

   When trying to post a direct message I get 402 errors with incorrect
   signature.

   Basically I am using the same signature generation as update except I
   replace
   status with text and add user at the bottom of signature generation.
   Just like
   the oAuth example page on twitter.

   Then I pass the two parameters in the request body.

   I also tried moving everything to url parameters but got the same
   error.

   Is there anything special about parameters for direct message when
   using
   oAuth?

   Does it sound like I am doing this correctly with my post/body method?

   Thanks,
   ...Dave


[twitter-dev] Re: Oauth Echo and Drupal

2010-06-21 Thread themattharris
Hi Tim,

That error you are getting is often thrown when curl tries to verify
the remote host. You can bypass this check in PHP using:
  curl_setopt($link, CURLOPT_SSL_VERIFYPEER, FALSE);
BUT this isn't ideal as it only hides the problem on your server.

Instead, what you need to do is check the permissions on your server
in the certificates folder. Reading the error message you get it
implies your certificate folder is:
  /etc/ssl/certs/ca-certificates.crt

We can't help specifically on how to do this for your environment but
your hosting provider should be able to help you.

Hope that helps,
Matt

On Jun 21, 11:59 am, Taylor Singletary taylorsinglet...@twitter.com
wrote:
 Hi Tim,

 That sounds like your machine might be having some issues connecting via
 SSL. Are you able to use Curl for any other SSL-based sites?

 Taylor

 On Mon, Jun 21, 2010 at 11:57 AM, Tim Millwood 
 t...@millwoodonline.co.ukwrote:



  Tried using Curl instead of drupal_http_request and got the following
  error.

  error setting certificate verify locations:\n  CAfile: \/etc\/ssl\/
  certs\/ca-certificates.crt\n  CApath: none\n

  Not sure what that means

  On Jun 21, 4:40 pm, Tim Millwood t...@millwoodonline.co.uk wrote:
   I have a test air app that posts to Twitpic perfectly fine using oAuth
   Echo, if I change the URL to my web app I get 401.

   Here are the headers I am passing to twitter to verify credentials. Am
   I missing some?

   [HTTP_X_AUTH_SERVICE_PROVIDER] =
 https://api.twitter.com/1/account/verify_credentials.json

   [Authorization] = OAuth

  realm=twitter,oauth_consumer_key=t94eBtc4Pz2zqo4KhABseQ,oauth_token=62
  66632-

  e0NRaGReqpzR84Floyg565BMJbBH4lYMxsJD9LNZY,oauth_version=1.0,oauth_timest
  amp=1276986312,oauth_nonce=KhWw0N,oauth_signature_method=HMAC-
   SHA1,oauth_signature=ubKN3OQy8xC5Sdkn%2BD%2Bcq9c1ywY%3D

   Tim

   On Jun 21, 4:28 pm, Taylor Singletary taylorsinglet...@twitter.com
   wrote:

Awesome. There's much untapped potential in OAuth Echo beyond just the
TwitPic, yFrog, etc. use cases.

This is an area where you're going to have to be very exacting. Have
  you
confirmed that the request you are building would actually execute
  against
Twitter correctly before you've sent it through your process? As in,
  have
you verified that the HTTP Authorization header you've created will
  work
against the end point before you've stuffed it into some other header,
processed the request, etc.

Can you share the authorization header you are using and how you've
  defined
the OAuth Echo headers? Your signature base string for the same?

Taylor

On Mon, Jun 21, 2010 at 8:06 AM, Tim Millwood 
  t...@millwoodonline.co.ukwrote:

 I am trying to do something else.

 I am not trying post to twitpic, I am trying to post to my own web
  app
 (similar to twitpic).

 I am getting the HTTP_X_AUTH_SERVICE_PROVIDER and
 HTTP_X_VERIFY_CREDENTIALS_AUTHORIZATION headers from the test app,
 then my web app is renaming the
 HTTP_X_VERIFY_CREDENTIALS_AUTHORIZATION header to Authorization and
 POSTing both to the URL in HTTP_X_AUTH_SERVICE_PROVIDER.
 This returns the 401 error.

 On Jun 21, 3:11 pm, Taylor Singletary taylorsinglet...@twitter.com
 wrote:
  Hi Tim,

  The call specified in your HTTP_X_* headers is for the OAuth Echo
 provider
  to execute against the API. Since they execute the call, it
  invalidates
 the
  oauth_nonce you provided. Really, it's a different API call that
  your
  application should be executing following an OAuth Echo
  transaction..

  1. You've got something to post with TwitPic
  2. You setup a mock request to Twitter to verify credentials so
  that
 TwitPic
  can identify your user with Twitter
  3. You send that mock request in HTTP_X_* headers to Twitpic, along
  with
  your API request to Twitpic with the image
  4. TwitPic executes the Twitter API call specified in the HTTP_X_*
 headers,
  verifying the user
  5. On success, TwitPic sends you in its response information about
  the
 media
  you just uploaded on behalf of your user
  6. You take that response and append it to a tweet, or whatever
  other API
  operation you're doing, and send a brand new request to Twitter

  Is this the flow you're following or are you trying to do something
  else?

  Taylor

  On Sat, Jun 19, 2010 at 12:40 PM, Tim Millwood 
 t...@millwoodonline.co.ukwrote:

   So... I now have a test app which is sending oAuth Echo request
   successfully to Twitpic.

   If I change the URL to my web app I get a 401 error back from
  Twitter,
   so there is something I am doing wrong.

   I am getting the HTTP_X_AUTH_SERVICE_PROVIDER and
   HTTP_X_VERIFY_CREDENTIALS_AUTHORIZATION headers from the test
  app,
   then my web app is renaming the
   HTTP_X_VERIFY_CREDENTIALS_AUTHORIZATION header 

[twitter-dev] Re: Which IETF standard has the year appearing after the time?

2010-06-21 Thread themattharris
The time format is a little weird and as far as I know, doesn't match
any RFC. Instead it matches the ruby default and is represented in
tokens by:
  %a %b %d %H:%M:%S %Z %Y

The format has been like this since the API was first released which
means, for backwards compatibility with other applications, we can't
easily change it with this version of the API.

I hope that explains the why it is still in the format it is.
Hopefully you can use the token string above to parse the date using
the time parsing functions of your chosen language.

Matt

On Jun 21, 12:40 pm, Peter Cross zootl...@gmail.com wrote:
 This date is from a call 
 tohttp://api.twitter.com/1/statuses/user_timeline.xml:

 created_atMon Jun 21 19:06:21 + 2010/created_at

 begin rant

 I've never seen the year come after the time... in any standard date
 format.  It's as if someone thought Hmmm... how can we make this date
 format more difficult to work with?.  Why, why why?  Now I have to
 write a special handler for this one exception.  It's sloppy.

 /end rant

 This isn't an XML standard date format either.

 -ZPC


[twitter-dev] Re: oAuth and Direct Message

2010-06-21 Thread themattharris
Thanks for the update and sharing the solution Dave. I'm glad it's all
working.

Regarding nonce values. I recommend something like the MD5 of the
concatenation of some kind of time value with a random number/string
to ensure a unique nonce every time.

Hope that helps
Matt

On Jun 21, 1:11 pm, ds acmedav...@gmail.com wrote:
 I solved the problem.

 I did not have an  between my two parameters in the POST body.

 Adding  between the text and user parameter fixed it.

 Thanks Matt.

 On Jun 21, 1:10 pm, themattharris thematthar...@twitter.com wrote:



  Hey Dave,

  Looking through your signature base string just a couple of things
  which jump out and would be worth checking:
  * There are some spaces in the nonce and timestamp where there
  shouldn't be. In all honesty this is most likely email formatting
  problems but I wanted to point it out just in case.
  * Your text is encoded three times which isn't good and could be the
  source of the problem depending on what else you are doing when you
  send your request. I want to rule it out as a symptom so can you take
  a look at that, and why it is encoded one extra time. When I run tests
  I see my text string similar to text%3Djust%2520a%2520simple
  %2520message%2520test. yours, in it's current encoding, would read as
  just%252520a%252520simple%252520message%252520test.

  Matt

  On Jun 18, 9:54 am, Acme Dave acmedav...@gmail.com wrote:

   Thanks Matt,

   I am still having problems. Here is the output of my test app.
   I am able to update status. So I know my POST logic is working correctly.

   Info sigBase: POSThttp%3A%2F%2Fapi.twitter.com
   %2F1%2Fdirect_messages%2Fnew.xmloauth_consumer_key%3DCKEY%26oauth_nonce%3D

   5855976111049200858%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%

   3D1276879684%26oauth_token%3DATOKEN%26oauth_version%3D1.0%26text%3Dyes%2525
20very%252520good%252520message%26user%3DTOUSER

   Info url:http://api.twitter.com/1/direct_messages/new.xml

   ERROR during token access exchange: java.io.IOException: Server returned
   HTTP response code: 401 for 
   URL:http://api.twitter.com/1/direct_messages/new.xml

   Extended error response: ?xml version=1.0 encoding=UTF-8?hash
   request/1/direct_messages/new.xml/request  errorIncorrect
   signature/error/hash

   On Fri, Jun 18, 2010 at 9:21 AM, themattharris 
   thematthar...@twitter.comwrote:

Hi Dave,

I seemed to have missed your message originally. Are you still
experiencing problems with this?

In answer to your question there isn't anything special required for
signing requests to send direct messages. If you are still having
problems can you provide us with your signature base string (without
any tokens/keys).

Matt

On Jun 11, 9:32 am, ds acmedav...@gmail.com wrote:
 I am having trouble sending a direct message with:
   http://api.twitter.com/1/direct_messages/new.xml

 I have been able to successfully post status updates with my code
 using oAuth.
 I have a java based custom application that is working fine for these
 updates.

 When trying to post a direct message I get 402 errors with incorrect
 signature.

 Basically I am using the same signature generation as update except I
 replace
 status with text and add user at the bottom of signature generation.
 Just like
 the oAuth example page on twitter.

 Then I pass the two parameters in the request body.

 I also tried moving everything to url parameters but got the same
 error.

 Is there anything special about parameters for direct message when
 using
 oAuth?

 Does it sound like I am doing this correctly with my post/body method?

 Thanks,
 ...Dave


[twitter-dev] Re: oAuth and Direct Message

2010-06-18 Thread themattharris
Hi Dave,

I seemed to have missed your message originally. Are you still
experiencing problems with this?

In answer to your question there isn't anything special required for
signing requests to send direct messages. If you are still having
problems can you provide us with your signature base string (without
any tokens/keys).

Matt

On Jun 11, 9:32 am, ds acmedav...@gmail.com wrote:
 I am having trouble sending a direct message 
 with:http://api.twitter.com/1/direct_messages/new.xml

 I have been able to successfully post status updates with my code
 using oAuth.
 I have a java based custom application that is working fine for these
 updates.

 When trying to post a direct message I get 402 errors with incorrect
 signature.

 Basically I am using the same signature generation as update except I
 replace
 status with text and add user at the bottom of signature generation.
 Just like
 the oAuth example page on twitter.

 Then I pass the two parameters in the request body.

 I also tried moving everything to url parameters but got the same
 error.

 Is there anything special about parameters for direct message when
 using
 oAuth?

 Does it sound like I am doing this correctly with my post/body method?

 Thanks,
 ...Dave


[twitter-dev] Re: Repeat Tweets

2010-06-16 Thread themattharris
Thanks for letting us know about these Andy. As Taylor was saying the
instabilities the other day are likely to have been the cause for
these getting through. It shouldn't happen now but anything that did
get through will still be there.

Matt

On Jun 15, 6:39 pm, Andy Matsubara andymatsub...@gmail.com wrote:
 Taylor,

 There's a sample of six consecutive 
 tweets.http://twitter.com/AppleWalker/status/16204554355http://twitter.com/AppleWalker/status/16204551280http://twitter.com/AppleWalker/status/16204548302http://twitter.com/AppleWalker/status/16204545368http://twitter.com/AppleWalker/status/16204542279http://twitter.com/AppleWalker/status/16204539134

 Andy Matsubara



 On Wed, Jun 16, 2010 at 4:21 AM, methnen meth...@gmail.com wrote:
  Can you provide some links to the repeated tweets? While things were at
  their worse last night, it was very easy for duplicate updates to get
  processed but that shouldn't be the case now.

  We manually deleted them and it now appears to have stopped.

  Are you sure that the client you were using isn't trying to re-post tweets
  on your behalf, thinking they haven't been posted yet?

  At first I thought it might be on our end.  As we use the API to make
  tweets via a custom script in our CMS.  However, the script records
  successful posts and then stops posting and the repeating tweet was
  recorded as a successful post and our system never sent it to Twitter
  again.

  Anyway it appears to have stopped so I guess all is good.  :)


[twitter-dev] Re: oauth status update returning error 401 invalid / used nonce

2010-06-15 Thread themattharris
Hey Craig,

Could you let us see what the authorization header you are sending
looks like (obfuscating your oauth keys and secrets)?

What you're aiming for is a header similar to this:

POST /1/statuses/update.xml HTTP/1.1
Accept: */*
Connection: close
User-Agent: OAuth gem v0.4.0
Content-Type: application/x-www-form-urlencoded
Authorization: OAuth
  oauth_consumer_key=\\,
  oauth_nonce=\\,
  oauth_signature=\\,
  oauth_signature_method=\HMAC-SHA1\,
  oauth_timestamp=\1276634179\,
  oauth_token=\xx\,
  oauth_version=\1.0\
Content-Length: 27
Host: api.twitter.com

With your post body being the status you are sending. Similar to:

status=something%20to%20say

Matt

On Jun 13, 8:32 pm, Craig chanson9...@gmail.com wrote:
 Ok, so I believe my signature is correct because if I take out the
 oauth_token parameter from the signature base I get an incorrect
 signature error instead of the invalid/used nonce error.  I am
 definitely posting to the correct url: https://api.twitter.com/1/
 statuses/update.xml because if I change it I get an invalid url
 response.  The nonce I'm generating is unique for every request I'm
 sending.  The timestamp is accurate to the number of seconds that have
 passed since unix epoch.  Obviously the invalid/used nonce error is
 garbage.

 Here's the formatting of my URL request in obj c:

 // Create the request
 NSString* requestString= [NSString
 stringWithFormat:@%@,TWITTER_STATUS_UPDATE_URL];
 NSMutableURLRequest* request = [[NSMutableURLRequest alloc]
                                 initWithURL:[NSURL 
 URLWithString:requestString]
                                 
 cachePolicy:NSURLRequestReloadIgnoringCacheData
                                     timeoutInterval:30.0];
 [request setHTTPMethod:@POST];
 [request addValue:authHeader forHTTPHeaderField:@Authorization];
 [request setValue:@application/x-www-form-urlencoded
 forHTTPHeaderField:@Content-Type];
 [request setValue:postBodyLength forHTTPHeaderField:@Content-
 Length];
 [request setHTTPBody:[postBody
 dataUsingEncoding:NSUTF8StringEncoding]];

 Any other ideas?  I'm at a total loss as to why this might be
 happening.

 Thanks,
 Craig

 On Jun 13, 3:42 pm, Craig chanson9...@gmail.com wrote:



  No dice.  I just tried creating a new app and using the new keys/token
  to tweet.  I'll go over my steps once more and see if I can track down
  an issue somewhere...

  On Jun 11, 8:53 pm, Taylor Singletary taylorsinglet...@twitter.com
  wrote:

   xAuth in this case, I think, is unrelated to the issue. If you can use
   a different key and use the my token feature to get your access
   token, then try to tweet using that token, it will sufficiently
   express the problem I think.

   Taylor

   On Jun 11, 2010, at 2:48 PM, Craig chanson9...@gmail.com wrote:

Hello,

I have an iphone app that is using xauth.  I am able to obtain the
access token with no problem at all.  When I go to post a status
update, I receive an invalid / used nonce error.  It can't actually be
a used nonce since I have checked this multiple times.  Here are the
details of the post:

url:
   http://api.twitter.com/1/statuses/update.xml

signature base string:
POSThttp%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses
%2Fupdate.xmloauth_consumer_key%3Dmyconsumerkey%26oauth_nonce
%3D397vi5Ug1YHC3UAVUAoB%26oauth_signature_method%3DHMAC-
SHA1%26oauth_timestamp%3D1276292596%26oauth_token%3Dmytoken
%26oauth_version%3D1.0%26status%3Dmy%2520tweet

Authorization header:
OAuth oauth_nonce=397vi5Ug1YHC3UAVUAoB, oauth_signature_method=HMAC-
SHA1, oauth_timestamp=1276292596,
oauth_consumer_key=myconsumerkey, oauth_token=mytoken,
oauth_signature=yOh2zQPGDBlVEP5cDWhjddQWTLc%3D, oauth_version=1.0

Content-Type:
[request setValue:@application/x-www-form-urlencoded
forHTTPHeaderField:@Content-Type];

I can see no reason why this shouldn't work.  Any help would be
greatly appreciated!

Thanks,
Craig


[twitter-dev] Re: Where to post documentation bugs?

2010-06-09 Thread themattharris
Hi Andrew,

Thanks for your question. You can file any issues with the docs on
dev.twitter.com on the api-issues list [1]. The list has a component-
docs which you can mark the issue with.

We're working on a number of issues with the docs at the moment and
hope to have them and the rest of the docs from the apiwiki updated
and correct in the next few weeks. Thanks for your patience.

Matt

1. http://code.google.com/p/twitter-api/issues/list

On Jun 5, 5:46 pm, Andrew andrew.don...@gmail.com wrote:
 Folks,

 I've just successfully implemented xAuth for my iPad app. During this
 process, I went down a few ratholes due to what I now consider
 documentation bugs. I list them below but I would like to know where I
 send these things in the future?

 All of these bugs are on: http://dev.twitter.com/pages/xauth.

 1) HMAC method string, oauth_signature_method, is wrong. It is:
 HMAC_SHA1. It should be: HMAC-SHA1.

 2) The below alludes to a POST body in the xAuth /oauth/access_token
 method.

 Your HTTP POST body would look like this:
 x_auth_mode=client_authx_auth_password=xyz12242134x_auth_username=episod

 In fact, the above is your parameter/query string. The method requires
 that the POST place these parameters on the URL.

 BTW, it would be nice to just see the whole URL. There is little
 reason to save bytes here. It would look like this:

 https://api.twitter.com/oauth/access_token?
 x_auth_mode=client_authx_auth_password=xyz12242134x_auth_username=
 episod

 Anon,
 Andrew


[twitter-dev] Re: Sign out of Twitter through API

2010-06-09 Thread themattharris
Hey GHengeveld,

There was a conversation about this back in April which might be help
[1]. In it Taylor explains that OAuth is stateless and that the logged
in state of a user is based on your system rather than ours.

Your application would be interacting with Twitter using the OAuth
tokens for the user as you have identified them. If the user isn't
recognised I would expect your widget would detect that and ask the
user to authenticate or authorize again. That being said, the method
you use to identify the user depends on what you want to do. Also, as
the user isn't logged into Twitter through the API the account/
end_session method will have no affect.

I'm wondering, have you looked at @anywhere. It may be suitable for
what you want to do.

Matt

1. 
http://groups.google.com/group/twitter-development-talk/browse_thread/thread/02e44b27d7ba3661

On Jun 8, 7:25 am, GHengeveld korad...@gmail.com wrote:
 I'm developing an application designed to run on a public computer,
 where many users will sign in with Twitter to register for our app.

 I've been looking for a way to sign the user out of Twitter when they
 exit the application (though a sign out button). Since we cannot
 destroy the cookies set by twitter.com, all it does right now is
 destroy our own session and cookies and show a button which links to
 the Twitter sign out page (in a popup).

 We would prefer not to use the popup, but instead sign the user out of
 Twitter automatically when they sign out of our application. This will
 greatly reduce the likeliness of people forgetting to logout (and thus
 allowing access to their own account by the next user). We're already
 using force_login=true to force a new login when someone connects to
 our application, but then it could already be too late.

 Is there any way to call a sign out through the API?

 Account/end_session seems to be what I'm looking for, but I can't get
 it to work. Another approach would be to scrape twitter.com for the
 authenticity_token and call the logout from through cURL, but this
 isn't the nicest way to do things and my first attemps have failed so
 far.


[twitter-dev] Re: Search API: searching for Don and finding don't instead

2010-06-07 Thread themattharris
Hi Jeffrey,

Thanks for bumping this to our attention. Some of the threads fall off
our radar so a prompt is always welcome.

Search treats separate words as an AND search meaning a search for:
  Don SomeLastName
will translate to:
  Don AND SomeLastName.

For a complete phrase search you would instead want to search for:
  Don SomeLastName.

The problem you are experiencing with Don matching Don't is, as
you suggested, managed by appending -don't to the query. You don't
need to escape the apostrophe and the quotes are not necessary, making
your search query:
  Don SomeLastName -don't

You can read more about the supported advanced search operators on the
search site [1].

Hope that helps,

Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris

1. http://search.twitter.com/operators

On Jun 7, 9:09 am, Jeffrey Greenberg jeffreygreenb...@gmail.com
wrote:
 Hello Twitter,
 Anyone home?
 j

 On Jun 2, 11:28 pm, Jeffrey Greenberg jeffreygreenb...@gmail.com
 wrote:



  We have a user that is causing us to create a search of the form:
     Don SomeLastName
  which is returning tweets containing don't and SomeLastName.

  Thats a no good!

  Is there a decent workaround for this by modifying the search? e.g.
      Don SomeLastName -don't
  but how do you escape the single quote?  Like this?
      Don SomeLastName -don't


[twitter-dev] Re: Trends not currently supporting the callback parameter?

2010-06-01 Thread themattharris
Thanks for letting us know about this. You can follow the progress of
this on the issues log [1].
We'll get onto the problem and have it resolved soon.

Matt
1. http://code.google.com/p/twitter-api/issues/detail?id=1668

On May 27, 9:37 am, Steven steven.pul...@gmail.com wrote:
 I have noticed a change with regards to the trends resource.

 for reference please check the following URLs

 1)http://api.twitter.com/1/trends/current.json
 2)http://api.twitter.com/1/trends/current.json?callback=foo
 3)http://search.twitter.com/trends.json?callback=foo

 Currently, for me api.twitter.com trends/current.json is returning the
 same pure JSON payload regardless of the callback parameter.  This is
 new behavior that has changed since I last used this resource.

 What I would expect, and is not the case, is that URL #2 with the
 callback parameter specified would return JSON wrapped in a function
 call, similar to how URL #3 behaves.

 Has anyone else noticed this?  I have confirmed it myself with more
 than one location.

 Is this on purpose?  Was a bug rolled out to production in a release?
 Am I missing the obvious. Please help.

 Thank you very much.


[twitter-dev] Re: Thoughts on annotations

2010-06-01 Thread themattharris
Zak,

Thanks for coming along and sharing your thoughts and feedback with
everyone. We're all impressed with what you and other developers came
up with this weekend and for finding those bugs and gotchas. We're
taking that information on board and making the necessary changes to
protect the API and improve the documentation.

For those who are interested in knowing about the other projects
please visit the wiki page [1] for a list of them.

Matt

1. http://wiki.github.com/themattharris/annotations-hackfest/

On May 31, 12:56 pm, zbowl...@gmail.com zbowl...@gmail.com wrote:
 I was still waking up and recovering from yesterday when I wrote this
 so forgive the typos, grammar, and mixing up attributes as
 annotations.

 I also wanted to mention that I'm glad that twitter didn't confuse
 annotations by using the term namespace or providing some kind of
 mechanism that goes that direction. I originally was wondering about
 conflicting but this method is better. Namespace gives developers a
 sense of ownership with the data stored in that annotation type. You
 can easily still easily namespace your types if you want (possibly in
 the reverse DNS format used in Java) but you can't prevent other
 developers from using them and that needs to be conveyed. If you need
 to strongly store annotation data, you can use signatures, hashes,
 version markers, or whatever in the annotation that you want to
 provide that, but it's up to the developer to what they want to fit
 their needs.

 Also wanted to playfully rant that parking overnight on the weekend
 near Twitter HQ sucks, especially when there is a baseball game. The
 closest garages all close at night on the weekends, so I ended up
 moving my car 3 times. Next time I'm taking BART and riding my
 bike. :-)

 Also

 On May 31, 11:39 am, Zac Bowling zbowl...@gmail.com wrote:



  This weekend's hackfest was at Twitter HQ was fun. About a couple dozen of 
  us stayed awake for about 30 hours and still had enough to energy to 
  present. Some pretty amazing things created and we helped identified a 
  bunch of bugs.

  Now that I've had a chance to go home and catch up on some sleep, here is a 
  brain dump of my thoughts.

  * One of the documented recommended types is place/location, but this data 
  is similar to what we store in the geo fields. I'm not sure what issues we 
  may run into privacy using it rather then storing the Geo fields (users can 
  enable/disable geo and remove geo data from all previous status updates).

  * We will always have twitter clients that will not understand or look even 
  look at our attributes. This means that we can't can't have annotations 
  that change the meaning of a tweet or make the meaning of the tweet 
  useless. This is basically graceful degradation, and not progressive 
  enhancement. We joked that want to see tweets that say: This tweet can 
  only be read in clients that support X annotations. Please upgrade your 
  twitter client or try X client..

  * You have to treat annotations as potentially hostile attack vectors.  As 
  was proved with some awesome cornfied and flashing unicorn injections this 
  weekend, any raw data can be store in annotations. Just because you stored 
  it there, anyone can do store any raw data and anyone can post tweets that 
  copy your annotation format. Twitter may sanitize javascript injections, 
  but it doesn't stop other types of injections from occurring if you don't 
  check. It's extremely important to validate, html encode, or whatever you 
  need to with the data stored in the annotations.

  As I did with my twitter remote shell execution example, I added my own 
  signature and noance of my own into the twitter annotation to validate the 
  sender had my secret. It may be one solution.

  * Attributes work at the time of creation because status updates are 
  immutable. This may be obvious to most, but its a limitation that hits you 
  a few times as you develop. Because of that we need to make sure that we 
  can get most of the clients, including Twitter.com, support the most 
  popular annotation formats. We can't fix update status updates after the 
  fact so we have to get it right.  (Adding annotations to new style retweets 
  is in theory possible)

  * Can't remind people enough to switch from twitter.com to api.twitter.com. 
   A bunch of little differences between the two that give you headaches. Our 
  board of wasted time at the hackfest summed it up pretty well.

  * A good number of us spent a good deal of time on just getting past OAuth 
  this weekend. We had a lot of people that understood the OAuth spec fairly 
  well thankfully and @jmhodges was there to help (although not his area he 
  deals with in the code). Since you update twitter with POST, it's optional 
  to store the authentication data in the postdata instead of the 
  authentication header according to the spec, and some our libraries were 
  doing just that, but twitter only works

[twitter-dev] Re: Bug with source parameter in Twitter search ?

2010-06-01 Thread themattharris
Hi Ram,

Thanks for bumping this to our attention. We're aware a number of uses
of source are being missed out and we are tracking this as ticket 1632
on our issues log [1]. You'll be able to track progress on that
thread.

Matt

1. http://code.google.com/p/twitter-api/issues/detail?id=1632

On Jun 1, 11:40 am, Ram group...@cascadesoft.net wrote:
 ping



  Over the past several weeks, I've seen an intermittent issue with
  Twitter search.

  A search ofhttp://search.twitter.com/search?q=%23ceconomyshowsall
  recent tweets with this hashtag. Multiple people have used this
  hashtag.

  However, asource-based search 
  ofhttp://search.twitter.com/search?q=%23cEconomy+source%3AiPhoneEconomyApp
  returns zero results (even though almost all the tweet-results from
  the previous search are from thissource)

  The samesource-based search works fine on some days (and it returns
  all tweets made over the past 5-6 days with thissourceand hashtag).
  On days like today, it returns zero results. On other days, it returns
  partial results.

  I'm assuming that adding asourceparameter should not suppress any
  results for tweets (made from the specifiedsource) that show up in
  searches made without thesourceparameter.

  Can someone from Twitter confirm that this is a bug (or does anyone
  else have any thoughts on this issue) ?


[twitter-dev] Announcing Snowflake

2010-06-01 Thread themattharris
Hey everyone,

In March we sent a message to you about upcoming changes to the way
status IDs are sequenced (http://bit.ly/upcoming-status-id-changes).
Today we announced Snowflake - the service we will be using to
generate those new IDs.

It isn't going live yet! We just know a lot of you are concerned about
how the Tweet IDs are going to affect your applications and wanted you
to have the chance to familiarize yourself with how Snowflake works.

You can find the a link to the code and read more about Snowflake on
the Twitter Engineering blog: http://bit.ly/announcing-snowflake

Best,
Matt


[twitter-dev] Re: users/lookup seems not to be working

2010-05-29 Thread themattharris
Hey Abacadabrados,

You need to give the user lookup request some valid user ids or screen
names. The error you are receiving is because you are sending a
user_id of 0 which is not a valid account. Maybe try with your screen
name first.

You can find more information on how the method works on
dev.twitter.com [1].

Hope that helps,
Matt

1. http://dev.twitter.com/doc/get/users/lookup

On May 29, 5:17 am, Abacadabrados rene.rikk...@gmail.com wrote:
 users/lookup seems not be working in the API console.

 For instance: I signed in, and selected my application in the console
 Headers and methods: GET / 1 / users/lookup
 Parameters and values: user_id / 0
 Response body: ... No user matches for specified terms ...

 The same for parameters and values: screen_name / twitterapi

 Interesting is maybe that I get a 404-error when using users/lookup in
 my own application.
 For your information: I do succesfully use OAuth, and other queries
 like friends/ids are doing fine.


[twitter-dev] Re: Issue with posting to twitter: http://twitter.com/home?status=doesnotworkifyouarenotloggedin

2010-05-28 Thread themattharris
Hi Priyanka,

Thanks. We're aware of the problem and it is being tracked as ticket
1650 [1] on the twitter-api issues log.

1. http://code.google.com/p/twitter-api/issues/detail?id=1650

Matt

On May 27, 8:24 pm, newtothisworld priyankalut...@gmail.com wrote:
 Hi,

 It appears that if you are not logged in, and hit the following 
 URL:http://twitter.com/home?status=doesnotworkifyouarenotloggedin, you
 lose the status you were trying to post.

 I'm very certain this used to work until a few days ago.

 Has something changed?

 Thanks for your help!
 Priyanka


[twitter-dev] Re: users.lookup() pulls by friendship date

2010-05-28 Thread themattharris
Hey cballou,

What is the actual API call you are making?
I ask because the users/lookup.json method requires you pass it user
ids for it to work. If you don't pass it any user ids or screen names
you will told that no user matches the specified terms.
The data is then returned in an undefined order. As nischalshetty
said, this method can be used to request information about any user so
the sort order is arbitrary.

Are you getting results when you pass no IDs?

Matt



On May 27, 7:43 pm, nischalshetty nischalshett...@gmail.com wrote:
 So it's the same one that I was talking about. They haven't specified
 any sorting rules in the doc, are you sure about it?

 Before all that, I hope you know that the lookup API can be used to
 retrieve info about ANY twitter user. So it does not matter if that
 user is your friend. How will the sorting be applied then?

 -Nischal

 On May 27, 5:18 am, cballou ball...@gmail.com wrote:



  The link is:

 http://dev.twitter.com/doc/get/users/lookup

  It actually returns the full dataset for up to 100 users. The returned
  data is sorted by your newest friendship in descending order.  This
  functionality is quite minimal and could definitely be expanded upon
  like I suggested above.  I was just wondering if there were any
  possibly hidden parameters I could pass in to change the count, cursor
  position, etc.

  On May 26, 1:22 am, nischalshetty nischalshett...@gmail.com wrote:

   Are you talking about this 
   -http://api.twitter.com/version/users/lookup.format

   The above API returns whatever ids you have passed. Am I missing
   something?

   -Nischal

   On May 26, 4:38 am, cballou ball...@gmail.com wrote:

Nobody?

On May 25, 12:14 pm, cballou ball...@gmail.com wrote:

 I really don't like the fact that calling users.lookup() returns the
 last 100 users I have friended.

 Is there a way to retrieve users in a more random fashion or with some
 kind of ordering (ascending/descending)?  I'm looking for more
 optional parameters.

 Suppose, for instance, that I have 500 friends.  I would not want to
 pull my last 100 friends when making this API call.  I might want to,
 however, pull a random sampling of 100 of those friends.  I may also
 want to pull a particular number of friends (i.e. imposing a limit on
 the request).

 I would propose that there be additional filtering parameters for this
 request:

 sort: asc/desc/random (default desc)
 limit: 1-100 (default 100)

 Can anybody clarify and expand upon this for me?


[twitter-dev] Re: Search spam??

2010-05-28 Thread themattharris
I'm wondering whether the search is getting popular tweets mixed in
(the default behavior) and that those are what you are seeing.
Can you give an example of one or two of the searches that are doing
this?

Thanks,
Matt

On May 27, 2:19 pm, M. Edward (Ed) Borasky zn...@borasky-
research.net wrote:
 I just noticed this today - may have been going on for a while,  
 though. I'm logged in on twitter.com. I have a few saved searches for  
 some friends - about four of them with different groups of friends.  
 What's in the search term is, for example, screen name 1 OR screen  
 name 2. The screen names appear without @ signs.

 One of these searches is returning tweets that don't match either of  
 the two screen names! They are returning tweets from the two screen  
 names *plus* some tweets that appear to be from people trying to get  
 me to click on links. These tweets do *not* have the characteristics  
 of a Promoted Tweet. They aren't showing up at the top of the search  
 - they're showing up in time sequence order.

 Has someone figured out how to game the search? Is Twitter testing  
 something and not telling us? When I search for sn1 OR sn2 I do  
 *not* want to receive tweets like this!

 http://twitter.com/rx8mall/status/14859299274


[twitter-dev] Re: Social Graph Methods Page Size change?

2010-05-28 Thread themattharris
Hi Miles,

Which API method are you using. The preferred method for retrieving
friends and followers is friends/ids [1] and followers/ids [2]. In
both cases it is recommended that you add cursor=-1 to the end.

Matt

1. http://dev.twitter.com/doc/get/friends/ids
2. http://dev.twitter.com/doc/get/followers/ids

On May 27, 1:37 pm, Miles  Parker milespar...@gmail.com wrote:
 I'm noticing now that page for friends and followers (for arbitrary
 user ids) are returning 100 users, not 5,000 as I'm seeing in the API
 docs. Is it my imagination that this has changed just in the last
 couple of days?


[twitter-dev] Re: Widget Search problem

2010-05-28 Thread themattharris
Hi cfalar,

This is a known bug and is being tracked as ticket 1404 [1].

Matt

1. http://code.google.com/p/twitter-api/issues/detail?id=1401

On May 27, 12:55 pm, cfalar carolfalard...@hotmail.com wrote:
 Hi,
 I have a problem with the Search widget.
 If i go on this pagehttp://twitter.com/goodies/widget_searchand type
 #habs OR attaquea5 on the search input, i got no result.
 If i take a look at the get parameter the q value is #habs+OR
 attaquea5.
 Look like something add the + sign.
 It always do that and its return no result.


[twitter-dev] Re: Important Notice on Incorrect API Endpoints for Search, REST, OAuth (+ some general tips!)

2010-05-28 Thread themattharris
I just wanted to make everyone aware that this issue is open and being
tracked [1]. Any progress or developments will be posted on that
thread.

If you are experiencing a problem with since_id I encourage you to
read my comment [2].

Thank you,
Matt

1. http://code.google.com/p/twitter-api/issues/detail?id=1154
2. http://code.google.com/p/twitter-api/issues/detail?id=1154#c19

On May 27, 5:24 pm, schammy scha...@gmail.com wrote:
 Twitter, your since_id feature has been broken since October 2009,
 and it is STILL broken. And yet you warn us that not using it will
 result in blacklisting? Your search API is unreliable when since_id is
 used. Someone at Twitter mistakenly closed the bug in December but oh
 yes, it still exists, it still gets plenty of comments. Fix that
 before requiring it to be used. Unacceptable.

 http://code.google.com/p/twitter-api/issues/detail?id=1154

 On May 27, 3:12 pm, Taylor Singletary taylorsinglet...@twitter.com
 wrote:



  Hi Developers,

  A few quick points before I go into more detail:

    * For the Search API, you should *only* be 
  usinghttp://search.twitter.comtoexecutesearch requests.
  *Not*http://api.twitter.com/1/searchorany other variation.

    * *Next week*, we plan to remove the erroneous, unsupported endpoint 
  athttp://api.twitter.com/1/search

    * All REST requests to the API should use the fully qualified hostname and
  API version in URLs:http://api.twitter.com/1/*--no other version is valid
  at this time.

    * All OAuth negotiation steps should be over SSL and also 
  athttp://api.twitter.com--but without a version.

    * Don't execute the same search query more often than every 20s and always
  use since_id on subsequent requests

    * Consider the streaming API if you're relying on search heavily to power
  your application

  *The Long-winded Approach*
  *
  *
  The only endpoint you should be using for search operations in the Twitter
  API today ishttp://search.twitter.com--it doesn't require user
  authentication or OAuth -- simply identify yourself with a user-agent that
  is unique to your application.

  For those usinghttp://twitter.com/search,http://api.twitter.com/search, 
  orhttp://api.twitter.com/1/search--you've been doing it wrong :)

  Though we should have rejected traffic to that end point long ago to avoid
  confusion, it was never intended as a valid resource for search queries.

  Next week, we'll be properly closing off this end point to avoid further
  confusion. If you have code today that uses thehttp://api.twitter.comor
  http:/twitter.com domains to execute search requests, be sure and update
  your code for the proper end point.

  You can find the Search API documentation athttp://bit.ly/twitter-search-api

  Many users of the Search API are better served by using the Streaming API.
  If you use the search API to track the tweets of specific users, hashtags,
  or simple keyword queries, it is highly recommended that you use the
  Streaming API instead.

  You shouldn't issue the same request to the search API more frequently than
  once every 20 seconds -- if you issue the same query more frequently than
  that, you're in danger of getting blacklisted. In addition, if you find
  yourself repeating the same query frequently, be sure and make use of the
  since_id parameter on subsequent requests -- without it, you put undue
  stress on the search infrastructure and will also be in danger of
  blacklisting.

  While we're on the topic of using the proper endpoints, a general reminder
  about endpoints with the Twitter API:

  All REST resource requests, with the exception of Search, should be pointed
  athttp://api.twitter.com/1/*--always use the api subdomain and specify
  the version number (1). No other version number will be accepted for the
  API at this time and your requests will fail if you provide a different
  string or integer.

  All OAuth negotiation steps should be over SSL 
  athttps://api.twitter.com/oauth/*(https://api.twitter.com/oauth/request_token;,
   https://api.twitter.com/oauth/authorize;, 
  https://api.twitter.com/oauth/access_token;, 
  https://api.twitter.com/oauth/authenticate;)

  Let us know if you have any concerns about the removal of the
  unofficial/unsupported search end point. We don't want to break people, but
  we also don't want you using unofficial API calls with substandard and
  unpredictable responses.

  Thanks!

  Taylor Singletary
  Developer Advocate, Twitterhttp://twitter.com/episod


[twitter-dev] Re: New opt-in API features available today, May 26th: entities, retweets in timelines, custom oauth_callback schemes

2010-05-27 Thread themattharris
I've replied on the ticket but for the benefit of everyone here is the
reply:

Thanks. The entities in retweets will function for all retweets from
now on. If you query a timeline which has
retweets in it [1] you should find the entities are included and with
the correct offsets.

1. twurl /1/statuses/user_timeline.xml?
id=themattharriscount=5include_entities=trueinclude_rts=truetrim_user=true


[twitter-dev] Annotations Hackfest

2010-05-26 Thread themattharris
Hey everyone,

This week the Twitter Engineering team announced they are running an
annotation Hackfest. The event will be this weekend (29-30 May) at
Twitter HQ (795 Folsom St. San Francisco) and is free to attend.
Places are limited so if you want to attend sign up today!

If you are in the Bay Area this is a great opportunity to hack with
Annotations and meet other Twitter developers. I'll be around for the
event so if you want to share ideas and experiences with using the
APIs, or just want to have a chat, come and say hi.

More details and the signup form are on the Engineering team blog:
http://engineering.twitter.com/2010/05/annotations-hackfest.html

Best,
Matt


[twitter-dev] Re: Annotations Hackfest

2010-05-26 Thread themattharris
Great question. We're really excited to see what developers do with
annotations during the hackfest. In some ways the hackfest can be
thought of as an early test of annotations and will let us know what
we have left to do before we release them to the developer community.

The plan, if things go well at the hackfest, is to have a general
developer release this summer.


[twitter-dev] Elevated API latency

2010-05-10 Thread themattharris
We've been getting reports from developers that the API has been
suffering from elevated latency, and in some cases have heard of
requests failing completely.

This is clearly a high priority issue, and is being actively
investigated by the team at Twitter HQ.

We'll post updates on Twitter http://twitter.com/twitterapi and to
this mailing list when we have them.

Thank you to all the developers who have provided us with examples and
datasets of where this has happened to them.

Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris


[twitter-dev] Moving from basic auto to OAuth - and hi!

2010-05-05 Thread themattharris
Hey everyone,

If you're on both the Twitter API Announcements and Twitter
Development Talk lists you may have already seen this message.

We know some of you may still be wondering what authorization method
you should be using, or switching to, in your applications. To help
you decide we have put together a short overview of the authorization
options available at http://dev.twitter.com/pages/auth_overview.

All of the authorization methods use OAuth, they just start at a
different point in the OAuth flow. Even xAuth is OAuth so you do need
to understand how to sign your API calls. More information on how
OAuth works and how to use it can be found at http://dev.twitter.com/pages/auth.

Also, for those of you who haven't met me yet, my name is Matt Harris
and I've just joined Twitter as a Developer Advocate. I'll be working
with Taylor, Raffi and the rest of the team at Twitter helping get as
much information to you as we can and listening to your questions and
comments as you create cool applications that integrate with Twitter.

If you want to get ahold of me you can use this Google Group or find
me on Twitter as @themattharris. I'll also be out and about at various
events including Google IO later this month.

Best,
Matt


Matt Harris
Developer Advocate, Twitter
http://twitter.com/themattharris