[twitter-dev] Re: Trying to trouble shoot DELETE list members with the Twitter gem.
If anyone is still having this problem you should know pengwynn patched this today in 0.7.7 http://github.com/jnunemaker/twitter On Nov 29, 11:04 am, Michael magic6...@gmail.com wrote: Hey mark thanks for the reply. I'm going to give it a shot today On Nov 28, 4:53 pm, Mark McBride mmcbr...@twitter.com wrote: Actually, adding it to :headers isn't going to do what you want at all. Best bet seems to be to patch the gem to issue a POST request along with _method = DELETE ---Mark On Sat, Nov 28, 2009 at 1:26 PM, Mark McBride mmcbr...@twitter.com wrote: This is the twitter gem athttp://github.com/jnunemaker/twitter? The problem seems to be that the list_remove_member in base.rb is trying to pass parameters in with :body in the last hash def list_remove_member(list_owner_username, slug, id) perform_delete(/#{list_owner_username}/#{slug}/members.json, :body = {:id = id}) end However perform_delete in request.rb completely ignores this option def perform_delete send(:delete, uri, options[:headers]) end You might try adding :headers = {:_method = DELETE} to your call, but the best path seems to be to get the gem fixed up. ---Mark On Sat, Nov 28, 2009 at 10:20 AM, Michael magic6...@gmail.com wrote: I have given up with trying to make it work with DELETE and tired sending _method=DELETE along with the body.. no success. i get Unauthorized - Incorrect signature Any ideas? On Nov 28, 12:13 am, Michael magic6...@gmail.com wrote: I know that i should post on the Twitter gem group(and i have) but that place is dead and also i think my problem is not with the gem but understanding how the oauth and REST works. I could be looking down the wrong path tho seeing as how i kinda feel like Alice down the rabbit hole. Everything dealing with lists works on the twitter gem but one thing and that's list_remove_user which is using the DELETE list members API. Now when i use it as planned i get this error. Twitter::RateLimitExceeded: (400): Bad Request - You must specify a member Which is the same error you get if you use the api via curl and leave off the id http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-DELETE-list-mem... It has nothing to do with the rate limit. twitter gem just returns all 400's as a ratelimitexceded. There is no rate limit for adding and removing list items and also my account is whitelisted. Then i moved on and noticed that the delete method was only passing the uri and header options meanwhile post and put had an extra body option. def perform_post send(:post, uri, options[:body], options[:headers]) end def perform_delete send(:delete, uri, options[:headers]) end From that i assumed that the id that gets passed for the users id must be inside of the options[:body] and that's why twitter was telling me You must specify a member When oauth gem creates the url's to query it does it like so and once again they do not include body def post(path, body = '', headers = {}) request(:post, path, body, headers) end def delete(path, headers = {}) request(:delete, path, headers) end But that all blows up when i add body to delete. So after all of this i guess what I'm wondering is.. is there something to do with oauth and REST that will not let you pass along extra params and do i need to look into using a POST method and passing _method=DELETE. I have not tried that yet because i have no idea how to attempt that in the confines of ruby using oauth. thanks for any help, this is driving me nuts. Mike.
[twitter-dev] Re: Trying to trouble shoot DELETE list members with the Twitter gem.
I have given up with trying to make it work with DELETE and tired sending _method=DELETE along with the body.. no success. i get Unauthorized - Incorrect signature Any ideas? On Nov 28, 12:13 am, Michael magic6...@gmail.com wrote: I know that i should post on the Twitter gem group(and i have) but that place is dead and also i think my problem is not with the gem but understanding how the oauth and REST works. I could be looking down the wrong path tho seeing as how i kinda feel like Alice down the rabbit hole. Everything dealing with lists works on the twitter gem but one thing and that's list_remove_user which is using the DELETE list members API. Now when i use it as planned i get this error. Twitter::RateLimitExceeded: (400): Bad Request - You must specify a member Which is the same error you get if you use the api via curl and leave off the id http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-DELETE-list-mem... It has nothing to do with the rate limit. twitter gem just returns all 400's as a ratelimitexceded. There is no rate limit for adding and removing list items and also my account is whitelisted. Then i moved on and noticed that the delete method was only passing the uri and header options meanwhile post and put had an extra body option. def perform_post send(:post, uri, options[:body], options[:headers]) end def perform_delete send(:delete, uri, options[:headers]) end From that i assumed that the id that gets passed for the users id must be inside of the options[:body] and that's why twitter was telling me You must specify a member When oauth gem creates the url's to query it does it like so and once again they do not include body def post(path, body = '', headers = {}) request(:post, path, body, headers) end def delete(path, headers = {}) request(:delete, path, headers) end But that all blows up when i add body to delete. So after all of this i guess what I'm wondering is.. is there something to do with oauth and REST that will not let you pass along extra params and do i need to look into using a POST method and passing _method=DELETE. I have not tried that yet because i have no idea how to attempt that in the confines of ruby using oauth. thanks for any help, this is driving me nuts. Mike.
Re: [twitter-dev] Re: Trying to trouble shoot DELETE list members with the Twitter gem.
This is the twitter gem at http://github.com/jnunemaker/twitter? The problem seems to be that the list_remove_member in base.rb is trying to pass parameters in with :body in the last hash def list_remove_member(list_owner_username, slug, id) perform_delete(/#{list_owner_username}/#{slug}/members.json, :body = {:id = id}) end However perform_delete in request.rb completely ignores this option def perform_delete send(:delete, uri, options[:headers]) end You might try adding :headers = {:_method = DELETE} to your call, but the best path seems to be to get the gem fixed up. ---Mark On Sat, Nov 28, 2009 at 10:20 AM, Michael magic6...@gmail.com wrote: I have given up with trying to make it work with DELETE and tired sending _method=DELETE along with the body.. no success. i get Unauthorized - Incorrect signature Any ideas? On Nov 28, 12:13 am, Michael magic6...@gmail.com wrote: I know that i should post on the Twitter gem group(and i have) but that place is dead and also i think my problem is not with the gem but understanding how the oauth and REST works. I could be looking down the wrong path tho seeing as how i kinda feel like Alice down the rabbit hole. Everything dealing with lists works on the twitter gem but one thing and that's list_remove_user which is using the DELETE list members API. Now when i use it as planned i get this error. Twitter::RateLimitExceeded: (400): Bad Request - You must specify a member Which is the same error you get if you use the api via curl and leave off the id http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-DELETE-list-mem... It has nothing to do with the rate limit. twitter gem just returns all 400's as a ratelimitexceded. There is no rate limit for adding and removing list items and also my account is whitelisted. Then i moved on and noticed that the delete method was only passing the uri and header options meanwhile post and put had an extra body option. def perform_post send(:post, uri, options[:body], options[:headers]) end def perform_delete send(:delete, uri, options[:headers]) end From that i assumed that the id that gets passed for the users id must be inside of the options[:body] and that's why twitter was telling me You must specify a member When oauth gem creates the url's to query it does it like so and once again they do not include body def post(path, body = '', headers = {}) request(:post, path, body, headers) end def delete(path, headers = {}) request(:delete, path, headers) end But that all blows up when i add body to delete. So after all of this i guess what I'm wondering is.. is there something to do with oauth and REST that will not let you pass along extra params and do i need to look into using a POST method and passing _method=DELETE. I have not tried that yet because i have no idea how to attempt that in the confines of ruby using oauth. thanks for any help, this is driving me nuts. Mike.