Your code looks correct to me :\ Here's a couple of questions/suggestions for you: - Can you post the full authsub link that your app redirects to?
- Verify that the correct .pem cert is uploaded to Google using https://www.google.com/accounts/ManageDomains - Verify that the private key is readable by your web server. It may be that the token exchange is the request that's failing. - What happens if you run the sample app I posted? Eric On Sep 30, 7:06 pm, unggoi <[EMAIL PROTECTED]> wrote: > Thanks for responding eric. > > Sorry about that. Here's the complete code. my feed query is > "https://www.google.com/h9/feeds/profile/default/-/medication" which is placed > on a configuration file. When I test it using secure=false everything > is working. But when I change the authsublink to implement secure > tokens error 401 appears. Is it a cert issue or something is wrong in > my code? > > String token = Request.QueryString["token"]; > String rsaKey = > ConfigurationManager.AppSettings["google_rsa_key"]; > String googleSessionToken; > if (rsaKey == string.Empty) > googleSessionToken = > AuthSubUtil.exchangeForSessionToken(token, null).ToString(); > else > { > X509Certificate2 temp = new X509Certificate2(rsaKey, > ConfigurationManager.AppSettings["google_rsa_password"]); > RSACryptoServiceProvider privateKey = temp.PrivateKey > as RSACryptoServiceProvider; > googleSessionToken = > AuthSubUtil.exchangeForSessionToken(token, privateKey).ToString(); > } > Session[GlobalConst.GOOGLETOKEN] = googleSessionToken; > > And for retreiving the feed here's the code > > GAuthSubRequestFactory authFactory = new > GAuthSubRequestFactory(ConfigurationManager.AppSettings["google_service_nam > e"], > ConfigurationManager.AppSettings["google_app_name"]); > authFactory.Token = (String)Session[GlobalConst.GOOGLETOKEN]; > String rsaKey = > ConfigurationManager.AppSettings["google_rsa_key"]; > > if (rsaKey != string.Empty) > { > X509Certificate2 temp = new > X509Certificate2(rsaKey,ConfigurationManager.AppSettings["google_rsa_passwo > rd"]); > RSACryptoServiceProvider privateKey = temp.PrivateKey as > RSACryptoServiceProvider; > authFactory.PrivateKey = privateKey; > } > > Service service = new Service(authFactory.Service, > authFactory.ApplicationName); > service.RequestFactory = authFactory; > > FeedQuery query = new FeedQuery(); > query.Uri = new > Uri(ConfigurationManager.AppSettings["google_feedquery_uri"]); > query.ExtraParameters = > ConfigurationManager.AppSettings["google_query_parameters"]; > > AtomFeed healthFeed = service.Query(query); > > On Sep 30, 6:48 pm, "Eric (Google)" <[EMAIL PROTECTED]> wrote: > > > Hi unggoi, > > > I don't seem where you're querying a feed. Your code > > seems to stop at creating the service object. > > > Here's a C# example that worked for > > me:http://code.google.com/p/googlehealthsamples/source/browse/trunk/dotN... > > > Eric > > > On Sep 30, 6:16 pm, unggoi <[EMAIL PROTECTED]> wrote: > > > > I'm getting a 401 error unauthorized when I'm using a secure token. > > > Everything works fine when I set secure to false. Is there something > > > wrong on my code or is this a cert issue? > > > I have domain.pfx and domain.cer is this correct? Please help and > > > thank you very much in advance. > > > > Here's my code > > > > String token = Request.QueryString["token"]; > > > String rsaKey = > > > ConfigurationManager.AppSettings["google_rsa_key"]; > > > String googleSessionToken; > > > if (rsaKey == string.Empty) > > > googleSessionToken = > > > AuthSubUtil.exchangeForSessionToken(token, null).ToString(); > > > else > > > { > > > X509Certificate2 temp = new X509Certificate2(rsaKey, > > > ConfigurationManager.AppSettings["google_rsa_password"]); > > > RSACryptoServiceProvider privateKey = temp.PrivateKey > > > as RSACryptoServiceProvider; > > > googleSessionToken = > > > AuthSubUtil.exchangeForSessionToken(token, privateKey).ToString(); > > > } > > > Session[GlobalConst.GOOGLETOKEN] = googleSessionToken; > > > > And for retreiving the feed here's the code > > > > GAuthSubRequestFactory authFactory = new > > > GAuthSubRequestFactory(ConfigurationManager.AppSettings["google_service_nam > > > e"], > > > ConfigurationManager.AppSettings["google_app_name"]); > > > authFactory.Token = (String)Session[GlobalConst.GOOGLETOKEN]; > > > String rsaKey = > > > ConfigurationManager.AppSettings["google_rsa_key"]; > > > > if (rsaKey != string.Empty) > > > { > > > X509Certificate2 temp = new > > > X509Certificate2(rsaKey,ConfigurationManager.AppSettings["google_rsa_passwo > > > rd"]); > > > RSACryptoServiceProvider privateKey = temp.PrivateKey as > > > RSACryptoServiceProvider; > > > authFactory.PrivateKey = privateKey; > > > } > > > > Service service = new Service(authFactory.Service, > > > authFactory.ApplicationName); > > > service.RequestFactory = authFactory;- Hide quoted text - > > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Health Developers" 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/googlehealthdevelopers?hl=en -~----------~----~----~----~------~----~------~--~---
