[twitter-dev] Re: illegal character in json feed
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
, @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
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
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)
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?
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
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.
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
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
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?
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
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?
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)
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
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.
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
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
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
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?
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
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
://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
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
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
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
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
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
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
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
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?
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
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
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
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
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
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?
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
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
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
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
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?
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
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
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?
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
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 ?
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
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
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
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
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??
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?
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
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!)
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
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
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
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
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!
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