We will have this support in the streaming API. Track terms will work against tweet text as well as entity text. Currently streaming does *not* work as Abraham describes below. We only match against tweet text, and don't do any link expansion/contraction.
---Mark http://twitter.com/mccv On Wed, Jun 9, 2010 at 12:13 PM, Jim Gilliam <j...@gilliam.com> wrote: > I'm creating a new thread for this because a few others have mentioned it, > and we haven't gotten a response yet. My hunch is that changing those APIs > involve other teams within Twitter, so figuring out a solution could be > challenging. > Here is the issue. We need to be able to get matches on the original URL > through the streaming and search APIs. For me, I'm tracking "act" so I can > match tweets that link to 'http://act.ly'. This is not a link shortener > service, the actual pages live at act.ly, and it was all designed > specifically for Twitter so there would be no need for url shorteners. > As far as I'm concerned, it's fine if that link changes to t.co, as long as > I can still get matches on act.ly (or act) through the streaming API (the > search API is going to be important for people too, but less of an issue for > me personally). > The most elegant way to fix this would be to allow tracking of the original > URL. So I can put in a domain name, or URL substring, and match everything > that way. Same with search. This would be useful to a lot of people, and > virtually all link oriented web apps with APIs provide a way to get all the > matches for a particular domain. (digg, google, yahoo, etc) > I'm sure there are other workaround ways of doing this, and I'm all ears. > It would be SUPER NICE (wink wink) to hear some kind of assurance that > there will be a way for us to query this type of information before the t.co > changes go live. > Thanks guys... > Jim Gilliam > http://act.ly/ > http://twitter.com/jgilliam > On Tue, Jun 8, 2010 at 4:43 PM, Jim Gilliam <j...@gilliam.com> wrote: >> >> Will we be able to get matches on the original URL through the streaming >> API? >> For example, I'm tracking "act" so I can match tweets that link to >> 'http://act.ly'. Will I still be able to do that? >> Jim Gilliam >> http://act.ly/ >> http://twitter.com/jgilliam >> >> On Tue, Jun 8, 2010 at 4:33 PM, Dewald Pretorius <dpr...@gmail.com> wrote: >>> >>> Raffi, >>> >>> I'm fine with everything up to the new 140 character count. >>> >>> If you count the characters *after* link wrapping, you are seriously >>> going to mess up my system. My short URLs are currently 18 characters >>> long, and they will be 18 long for quite some time to come. After that >>> they will be 19 for a very long time to come. >>> >>> If you implement this change, a ton, and I mean a *huge* number of my >>> system's updates are going to be rejected for being over 140 >>> characters. >>> >>> On Jun 8, 7:57 pm, Raffi Krikorian <ra...@twitter.com> wrote: >>> > hi all. >>> > >>> > twitter has been wrapping links in e-mailed DMs for a couple months >>> > now<http://bit.ly/twttldmemail>. >>> > with that feature, we're trying to protect users against phishing and >>> > other >>> > malicious attacks. the way that we're doing this is that any URL that >>> > comes >>> > through in a DM gets currently wrapped with a twt.tl URL -- if the URL >>> > turns >>> > out to be malicious, Twitter can simply shut it down, and whoever >>> > follows >>> > that link will be presented with a page that warns them of potentially >>> > malicious content. in a few weeks, we're going to start slowly enabling >>> > this >>> > throughout the API for all statuses as well, but instead of twt.tl, we >>> > will >>> > be using t.co. >>> > >>> > practically, any tweet that is sent through statuses/update that has a >>> > link >>> > on it will have the link automatically converted to a t.co link on its >>> > way >>> > through the Twitter platform. if you fetch any tweet created after this >>> > change goes live, then its text field will have all its links >>> > automatically >>> > wrapped with t.co links. when a user clicks on that link, Twitter will >>> > redirect them to the original URL after first confirming with our >>> > database >>> > that that URL is not malicious. on top of the end-user benefit, we >>> > hope to >>> > eventually provide all developers with aggregate usage data around your >>> > applications such as the number of clicks people make on URLs you >>> > display >>> > (it will, of course, be in aggregate and not identifiable manner). >>> > additionally, we want to be able to build services and APIs that can >>> > make >>> > algorithmic recommendations to users based on the content they are >>> > consuming. gathering the data from t.co will help make these possible. >>> > >>> > our current plan is that no user will see a t.co URL on twitter.com but >>> > we >>> > still have some details to work through. the links will still be >>> > displayed >>> > as they were sent in, but the target of the link will be the t.co link >>> > instead. and, we want to provide the same ability to display original >>> > links >>> > to developers. we're going to use the entities attribute to make this >>> > possible. >>> > >>> > let's say i send out the following tweet: "you have to check >>> > outhttp://dev.twitter.com!" >>> > >>> > a returned (and truncated) status object may look like: >>> > >>> > { >>> > "text" : "you have to check outhttp://t.co/s9gfk2d4!", >>> > ... >>> > "user" : { >>> > "screen_name" : "raffi", >>> > ... >>> > }, >>> > ... >>> > "entities" : { >>> > "urls" : [ >>> > { >>> > "url" : "http://t.co/s9gfk2d4", >>> > "display_url" : "http://dev.twitter.com", >>> > "indices" : [23, 43] >>> > } >>> > ], >>> > ... >>> > }, >>> > ... >>> > >>> > } >>> > >>> > two things to note: the text of the returned status object doesn't have >>> > the >>> > original URL and instead it has a t.co URL, and the entities block now >>> > has a >>> > display_url attribute associated with it. what we're hoping is that >>> > with >>> > this data, it should be relatively easy to create a UI where you >>> > replace thehttp://t.co/s9gfk2d4in the text with the equivalent of >>> > >>> > <a href="http://t.co/s9gfk2d4">http://dev.twitter.com</a> >>> > >>> > this means the user would not see the t.co link, but we all can still >>> > provide the protection and gather data from the wrapped link. for the >>> > applications that don't choose to update, the t.co link will be shown >>> > (and >>> > the goal to protect users will be met). i just want to emphasize -- we >>> > really do hope that you all render the original URL, but please send >>> > the >>> > user through the t.co link. if you do choose to prefetch all the URLs >>> > on a >>> > timeline, then, when a user actually clicks on one of the links, please >>> > still send him or her through t.co. We will be updating the TOS to >>> > require >>> > you to check t.co and register the click. >>> > >>> > related to this: the way the Twitter API counts characters is going to >>> > change ever so slightly. our 140 characters is now going to be defined >>> > as >>> > 140 characters after link wrapping. t.co links are of a predictable >>> > length >>> > -- they will always be 20 characters. after we make this live, it will >>> > be >>> > feasible to send in the text for a status that is greater than 140 >>> > characters. the rule is after the link wrapping, the text transforms to >>> > 140 >>> > characters or fewer. we'll be using the same logic that is in >>> > twitter-text-rb to figure out what is a URL. >>> > >>> > look for an update to dev.twitter.com where we'll have a best practices >>> > document on how to use these t.co links. >>> > >>> > what's the timeline? "soon" we'll enable this on @twitterapi, >>> > @rsarver, >>> > @raffi, and a few other test accounts so you all have live data to play >>> > with. on the timescale of weeks (to potentially a month or two), we'll >>> > roll >>> > this out to everybody. >>> > >>> > of course, if there are any questions, just feel free to direct them to >>> > @twitterapi! >>> > >>> > -- >>> > Raffi Krikorian >>> > Twitter Platform Teamhttp://twitter.com/raffi >> > >