Hi Sergi,

Thanks for sharing the context of your problem.

To answer your queries,
1. Google Authentication API requires URL encoded email and password
values. So, Server.UrlEncode("[EMAIL PROTECTED]") is OK.
2. The Http Header used is GoogleLogin auth=<token>

Please confirm if GetToken() call is getting you a token. In case not,
sharing the message/error code you are getting from
the server would help us investigate the exact problem. Here is a link
detailing server responses:
http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html#Response

Also, in your code, i see a problem with:

webrequest.Headers.Add(Net.HttpRequestHeader.Authorization,
"Authorization:GoogleLogin auth=" & GetToken())

When using the Add() method with two parameters, the "Authorization:"
text is getting duplicated in the header.
You could try running the code by removing the "Authorization:" prefix
form the second parameter.

webrequest.Headers.Add(Net.HttpRequestHeader.Authorization,
"GoogleLogin auth=" & GetToken())


-Anirudh

On May 15, 8:44 pm, Sergi Doutres <[EMAIL PROTECTED]> wrote:
> Hi Anirudh,
>
> The project I have is for migrating more than 1000 e mail accounts to
> GMail. Im sending you the whole code so you could try it And create
> the problem
> Please let me know what could be the problem.
>
> '-------------
> 'GET TOKEN
> '-------------
>
> Questions:
> Server.UrlEncode("[EMAIL PROTECTED]") it's ok?
> -----------------------------------------
>
> Public Function GetToken() As String
>
> Dim encoding As ASCIIEncoding = New ASCIIEncoding
>
> Dim postdata As String = ""
> postdata = postdata & "accountType=HOSTED"
> postdata = postdata & "&Email=" & Server.UrlEncode("[EMAIL PROTECTED]")
> postdata = postdata & "&Passwd=" & Server.UrlEncode("pwd")
> postdata = postdata & "&service=apps"
>
> Dim data As Byte() = encoding.GetBytes(postdata)
>
> 'Prepare web request...
> Dim myrequest As HttpWebRequest = 
> HttpWebRequest.Create("https://www.google.com/accounts/ClientLogin";)
> myrequest.Method = "POST"
> myrequest.ContentType = "application/x-www-form-urlencoded"
> myrequest.ContentLength = data.Length
> Dim newstream As Stream = myrequest.GetRequestStream()
> Dim myWriter As New StreamWriter(myrequest.GetRequestStream())
>
> 'Send the data.
> newstream.Write(data, 0, data.Length)
> newstream.Close()
>
> 'obtenim el Token
> Dim objresponse As HttpWebResponse = myrequest.GetResponse
> Dim sr As StreamReader = New
> StreamReader(objresponse.GetResponseStream)
> Dim resultat As String = Server.UrlDecode(sr.ReadToEnd)
>
> Dim pos As Integer = InStr(resultat, "Auth=")
> resultat = resultat.Substring(pos + 4)
> sr.Close()
> Return resultat
>
> End Function
>
> '---------------
> 'SEND XML POST DATA
> '---------------
>
> Questions:
> GoogleLogin auth=asdasd
> or
> GoogleLogin=aasdasd
> or
> auth=aassd
> -----------------------------------------
>
> Protected Sub bt_enviar_Click(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles bt_enviar.Click
>
> Dim webrequest As HttpWebRequest = 
> HttpWebRequest.Create("https://www.google.com/a/feeds/facilcar.com/user/2.0";)
> webrequest.Method = "POST"
> webrequest.ContentType = "application/atom+xml"
>
> 'webrequest.Headers.Add(Net.HttpRequestHeader.Authorization,
> "GoogleLogin
> auth=DQAAAIMAAAA9wi_1qL9_vpNUDcg3ictwOcWqtcxoxgac6GUqtKK1wW_pvYJCgOOQb1zmRsYOuPwd6A3UcW0Kj1Z-8_ClFLMBJjCKsrnI_Q3GsbS68o9oDVq7mqztFTfFY5GU-
> woJANndTXX6Z0SD2Hxl-
> LNQpWkYqiuYKUJhuJpj550brqkUowFC07b0BrMtGAjf31kLm7k")
> webrequest.Headers.Add(Net.HttpRequestHeader.Authorization,
> "Authorization:GoogleLogin auth=" & GetToken())
>
> Dim reader As StreamReader = New StreamReader(Server.MapPath("xml/
> GrupSerhs.xml"))
> Dim ret As String = reader.ReadToEnd
> reader.Close()
>
> Dim writer As StreamWriter = New
> StreamWriter(webrequest.GetRequestStream())
> writer.WriteLine(ret)
> writer.Close()
>
> Dim rsp As WebResponse = Nothing
> Try
>         rsp = webrequest.GetResponse()
>     Me.lbl_resultat.Text = rsp.GetResponseStream.ToString
>     rsp.Close()
> Catch ex As Exception
>         Me.lbl_resultat.Text = Err.Description & " (number=" & Err.Number &
> ")"
> End Try
>
> End Sub
>
> Thank you very much
> Sergi Doutres
>
> On May 15, 7:46 am, "Anirudh (Google)" <[EMAIL PROTECTED]> wrote:
>
> > Hi Sergi,
>
> > I tried using your code and could successfully authenticate hosted
> > accounts.
> > Could you please share some more details of the error you are
> > receiving from the authentication service?
>
> > You could try to get some more details on the error by probably
> > handling the exceptions around the 'GetResponse' call.
>
> >         Dim objresponse As HttpWebResponse = Nothing
> >         Try
> >             objresponse = myrequest.GetResponse
>
> >         Catch webEx As WebException
> >             MsgBox(webEx.Message)
>
> >         Catch ex As Exception
> >             MsgBox(ex.Message)
>
> > -Anirudh
>
> > On May 13, 9:18 pm, Sergi Doutres <[EMAIL PROTECTED]> wrote:
>
> > > Dim mail As String = "email"
> > >         Dim pwd As String = "pwd"
> > >         Dim encoding As ASCIIEncoding = New ASCIIEncoding
> > >         Dim postdata As String = ""
> > >         postdata = postdata & "accountType=HOSTED"
> > >         postdata = postdata & "&Email=" & Server.UrlEncode(mail)
> > >         postdata = postdata & "&Passwd=" & Server.UrlEncode(pwd)
> > >         postdata = postdata & "&service=apps"
> > >         Dim data As Byte() = encoding.GetBytes(postdata)
>
> > >         Dim myrequest As HttpWebRequest =
> > > HttpWebRequest.Create("https://www.google.com/accounts/ClientLogin";)
> > >         myrequest.Method = "POST"
> > >         myrequest.ContentType = "application/x-www-form-urlencoded"
> > >         myrequest.ContentLength = data.Length
> > >         Dim newstream As Stream = myrequest.GetRequestStream()
> > >         Dim myWriter As New StreamWriter(myrequest.GetRequestStream())
>
> > >         Try
> > >             myWriter.Write(postdata)
> > >         Catch ex As Exception
> > >             Response.Write(Err.Description)
> > >         Finally
> > >             myWriter.Close()
> > >         End Try
>
> > >         Dim objresponse As HttpWebResponse = myrequest.GetResponse
> > >         Dim sr As StreamReader = New
> > > StreamReader(objresponse.GetResponseStream)
> > >         Dim resultat As String = Server.UrlDecode(sr.ReadToEnd)
>
> > >         Dim pos As Integer = InStr(resultat, "Auth=")
> > >         resultat = resultat.Substring(pos + 4)
> > >         sr.Close()
>
> > >         return (resultat)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Apps APIs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-apps-apis?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to