I changed a lot of things, but I am not satisfied with how we are defining the API calls nor how they are made. We can definitely work on some type safety. Sorry if I destroyed you style. And I am oweing a better explanation of the auth cycle which I will put somewhere in the sources soon.

Here is a REPL session showing how it works. Notice that the result of Http.mkAuthURL has to be actually pasted in browser and you have to login.

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.

scala> Invoke.getFrob

DO GET ON:https://api.rememberthemilk.com/services/rest/?api_sig=d2f6be0de20e0e25260e2bd31203b002&method=rtm.auth.getFrob&api_key=d4e8bd97ca6849271ab72c6713c9314a
BODY
<?xml version='1.0' encoding='UTF-8'?><rsp stat="ok"><frob>b756f9df0af47800656581751e6de22c690b7f3d</frob></rsp>
Response: <?xml version='1.0' encoding='UTF-8'?><rsp stat="ok"><frob>b756f9df0af47800656581751e6de22c690b7f3d</frob></rsp>
res0: Either[String,String] = Right(b756f9df0af47800656581751e6de22c690b7f3d)

scala> Http.mkAuthUrl(res0.right.get) // The annoying browser thing. Paste it in browser.

res1: java.net.URL = https://www.rememberthemilk.com/services/auth/?api_sig=1ba291d1a57e37e065534c68e1455b0f&frob=b756f9df0af47800656581751e6de22c690b7f3d&perms=read&api_key=d4e8bd97ca6849271ab72c6713c9314a

scala> Invoke.getToken(res0.right.get)

DO GET ON:https://api.rememberthemilk.com/services/rest/?api_sig=6e56c3243e45413ae060168c0f52803a&method=rtm.auth.getToken&api_key=d4e8bd97ca6849271ab72c6713c9314a&frob=b756f9df0af47800656581751e6de22c690b7f3d&perms=read
BODY
<?xml version='1.0' encoding='UTF-8'?><rsp stat="ok"><auth><token>6d3084a6a4ede3cd16a71d4f43a4be7fbda62347</token><perms>read</perms><user id="3821339" username="pedrofurla" fullname="Pedro Furlanetto"/></auth></rsp>
Response: <?xml version='1.0' encoding='UTF-8'?><rsp stat="ok"><auth><token>6d3084a6a4ede3cd16a71d4f43a4be7fbda62347</token><perms>read</perms><user id="3821339" username="pedrofurla" fullname="Pedro Furlanetto"/></auth></rsp>
res2: Either[String,String] = Right(6d3084a6a4ede3cd16a71d4f43a4be7fbda62347)

scala> Invoke.getTasks(res2.right.get)

DO GET ON:https://api.rememberthemilk.com/services/rest/?api_sig=a5b0099da076c5928bb4e8c4bf247ac4&method=rtm.tasks.getList&api_key=d4e8bd97ca6849271ab72c6713c9314a&auth_token=6d3084a6a4ede3cd16a71d4f43a4be7fbda62347
BODY
<?xml version='1.0' encoding='UTF-8'?><rsp stat="ok"><tasks rev="8912pf8ymd0ccs4sgs4g808o4s4g4so"><list id="25554054"/><list id="25554055"><taskseries id="153239274" created="2012-03-18T14:24:00Z" modified="2012-03-18T14:24:00Z" name="Try out Remember The Milk" source="js" url="" location_id=""><tags/><participants/><notes/><task id="241168935" due="2012-03-18T14:24:00Z" has_due_time="1" added="2012-03-18T14:24:00Z" completed="" deleted="" priority="1" postponed="0" estimate=""/></taskseries></list><list id="25554056"/><list id="25554057"/><list id="25554058"/><list id="25554059"/></tasks></rsp>
res3: String = <?xml version='1.0' encoding='UTF-8'?><rsp stat="ok"><tasks rev="8912pf8ymd0ccs4sgs4g808o4s4g4so"><list id="25554054"/><list id="25554055"><taskseries id="153239274" created="2012-03-18T14:24:00Z" modified="2012-03-18T14:24:00Z" name="Try out Remember The Milk" source="js" url="" location_id=""><tags/><participants/><notes/><task id="241168935" due="2012-03-18T14:24:00Z" has_due_time="1" added="2012-03-18T14:24:00Z" completed="" deleted="" priority="1" postponed="0" estimate=""/></taskseries></list><list id="25554056"/><list id="25554057"/><list id="25554058"/><list id="25554059"/></tasks></rsp>