# HG changeset patch # User Tero Koskinen # Date 1344972337 -10800 # Tue Aug 14 22:25:37 2012 +0300 # Node ID 5fe8c431839046bf789f5eedba51a8ff37ea5dbb # Parent 5c7d2a23ef5e515edb17d3e61b55fad2cd136129 Remove Access_Token procedure and its HTTP dependency at the same time. One is now expected to use As_Header procedure. diff --git a/src/oauth-easy.adb b/src/oauth-easy.adb --- a/src/oauth-easy.adb +++ b/src/oauth-easy.adb @@ -224,42 +224,7 @@ (To_String (Result), Context.Token, Context.Token_Secret); end Request_Token; - procedure Access_Token (Context : in out OAuth_Context; - URL : in String; - Method : in String; - Verifier : in String; - User_Id : out Unbounded_String; - Name : out Unbounded_String) is - - Temp_Token : String := To_String (Context.Token); - Temp_Secret : String := To_String (Context.Token_Secret); - Params : OAuth.Parameter_List.List := OAuth.Parameter_List.Empty_List; - Digest_Val : SHA.Digest; - Base_Str : Unbounded_String; - Ctx : HMAC_SHA.HMAC_Context; - Sig : Unbounded_String; - H : Unbounded_String; - Result : Charbuf.Char_Buffer; - R_Code : Long_Integer; - begin - OAuth.Parameter_List.Append (Params, (Key => +"oauth_verifier", - Value => +Verifier)); - OAuth.Parameter_Sorting.Sort (Params); - As_Header (Context, URL, Method, Params, H); - - -- Put_Line ("Header: " & To_String (H)); - HTTP.Get_Page - (URL => URL, - Header_Key => "Authorization", - Header_Value => To_String (H), - Contents => Result, - Response_Code => R_Code); - -- Put_Line ("Result: " & To_String (Result)); - Parse_Access_Token - (To_String (Result), Context.Token, Context.Token_Secret, - User_Id, Name); - end Access_Token; - + -- OAuth info for access token returned as header suitable for HTTP request procedure As_Header (Context : in out OAuth_Context; URL : in String; Method : in String; diff --git a/src/oauth-easy.ads b/src/oauth-easy.ads --- a/src/oauth-easy.ads +++ b/src/oauth-easy.ads @@ -19,18 +19,17 @@ procedure Init (Context : out OAuth_Context; Consumer_Key : in String; Consumer_Secret : in String); + + procedure Parse_Access_Token (Input : String; + Token : out Unbounded_String; + Secret : out Unbounded_String; + User_Id : out Unbounded_String; + Name : out Unbounded_String); procedure Request_Token (Context : in out OAuth_Context; URL : in String; Method : in String); - procedure Access_Token (Context : in out OAuth_Context; - URL : in String; - Method : in String; - Verifier : in String; - User_Id : out Unbounded_String; - Name : out Unbounded_String); - procedure As_Header (Context : in out OAuth_Context; URL : in String; Method : in String; diff --git a/src/twitter.adb b/src/twitter.adb --- a/src/twitter.adb +++ b/src/twitter.adb @@ -58,17 +58,41 @@ PIN : String; User_Id : in out Unbounded_String; Name : in out Unbounded_String) is + use OAuth; + + Extra_Params : Parameter_List.List := Parameter_List.Empty_List; + Result : Charbuf.Char_Buffer; + OAuth_Header : Unbounded_String; + R_Code : Long_Integer; + Token : Unbounded_String; + Token_Secret : Unbounded_String; begin - OAuth.Easy.Access_Token + OAuth.Parameter_List.Append + (Extra_Params, (Key => To_Unbounded_String ("oauth_verifier"), + Value => To_Unbounded_String (PIN))); + OAuth.Easy.As_Header (Context => Manager.C, URL => Access_Token_URL (Microblog), Method => "GET", - Verifier => PIN, - User_Id => User_Id, - Name => Name); - Secrets.Set_Token (Microblog, To_String (OAuth.Easy.Get_Token (Manager.C))); - Secrets.Set_Token_Secret - (Microblog, To_String (OAuth.Easy.Get_Token_Secret (Manager.C))); + Parameters => Extra_Params, + Header => OAuth_Header); + HTTP.Get_Page + (URL => Access_Token_URL (Microblog), + Header_Key => "Authorization", + Header_Value => To_String (OAuth_Header), + Contents => Result, + Response_Code => R_Code); + Put_Line ("Access_Token: " & Charbuf.To_String (Result)); + OAuth.Easy.Parse_Access_Token + (Input => Charbuf.To_String (Result), + Token => Token, + Secret => Token_Secret, + User_Id => User_Id, + Name => Name); + OAuth.Easy.Set_Token (Manager.C, To_String (Token)); + OAuth.Easy.Set_Token_Secret (Manager.C, To_String (Token_Secret)); + Secrets.Set_Token (Microblog, To_String (Token)); + Secrets.Set_Token_Secret (Microblog, To_String (Token_Secret)); end Auth_Give_PIN; procedure Homeline (Manager : in out Twitter_Type;