Hi all,
    I have my own OAuth service provider(sparklr) and I want to access
the service provider
through igoogle gadget...................
Reading blogs and post i come to know that i have to register my oAuth
consumer key and oAuth consumer secret with
oauthoproxy...@google.com...........so i mailed them the details and
got the oAuth consumer secret registerd.

Still i am not able to access my provider through the gadget
In provider i have defined key and secret in applicationContext.xml
file which gets loaded when the server starts up ...........any one
please help me

The error i am getting is:
OAuth error: UNKNOWN_PROBLEM: No oauth_token returned from service
provider
==== Original request:GET /provider/rest/jpg/contact/1?alt=json
Host: localhost:8080X-Shindig-AuthType: oauthX-shindig-dos: on====
==== Sent request 1:
GET /provider/oauth/request_token/?scope=http://localhost:8080/
provider/
Host: localhost:8080X-Shindig-AuthType: none
Authorization: OAuth opensocial_owner_id="102705571806081148326",
opensocial_viewer_id="102705571806081148326",
opensocial_app_id="106942052185461730926", opensocial_app_url="http%3A
%2F%2Fsetlgadget.appspot.com%2Ftestprovider.xml", oauth_version="1.0",
oauth_timestamp="1247205825", oauth_consumer_key="mysetlkey",
oauth_signature_method="HMAC-SHA1", oauth_nonce="1247205825446326000",
oauth_signature="uGbOmNk5cSDww6zXJl%2FSrSof8xQ%3D"
X-shindig-dos: on==== Received response 1:HTTP/1.1 502
Date: Fri, 10 Jul 2009 06:03:45 GMT====
 Personalize this gadget
Please click I've approved access once you've approved access to your
data.


My gadget xml goes here:.......

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="OAuth Contacts" scrolling="true">
    <Require feature="opensocial-0.8" />
    <Require feature="locked-domain"/>
    <OAuth>
      <Service name="setl">
        <Access url="http://localhost:8080/provider/oauth/
access_token/" method="GET" />
        <Request url="http://localhost:8080/provider/oauth/
request_token/?scope=http://localhost:8080/provider/"; method="GET"/>
        <Authorization url="http://localhost:8080/provider/oauth/
authorize/?oauth_callback=http://oauth.gmodules.com/gadgets/
oauthcallback" />
      </Service>
    </OAuth>
  </ModulePrefs>
  <Content type="html">
  <![CDATA[


  <!-- shindig oauth popup handling code -->
  <script src="http://gadget-doc-examples.googlecode.com/svn/trunk/
opensocial-gadgets/popup.js"></script>

  <style>
  #main {
    margin: 0px;
    padding: 0px;
    font-size: small;
  }
  </style>

  <div id="main" style="display: none">
  </div>

  <div id="approval" style="display: none">
    <img src="http://gadget-doc-examples.googlecode.com/svn/trunk/
images/new.gif">
    <a href="#" id="personalize">Personalize this gadget</a>
  </div>

  <div id="waiting" style="display: none">
    Please click
    <a href="#" id="approvaldone">I've approved access</a>
    once you've approved access to your data.
  </div>

  <script type="text/javascript">
    // Display UI depending on OAuth access state of the gadget (see
<divs> above).
    // If user hasn't approved access to data, provide a "Personalize
this gadget" link
    // that contains the oauthApprovalUrl returned from makeRequest.
    //
    // If the user has opened the popup window but hasn't yet approved
access, display
    // text prompting the user to confirm that s/he approved access to
data.  The user
    // may not ever need to click this link, if the gadget is able to
automatically
    // detect when the user has approved access, but showing the link
gives users
    // an option to fetch their data even if the automatic detection
fails.
    //
    // When the user confirms access, the fetchData() function is
invoked again to
    // obtain and display the user's data.
    function showOneSection(toshow) {
      var sections = [ 'main', 'approval', 'waiting' ];
      for (var i=0; i < sections.length; ++i) {
        var s = sections[i];
        var el = document.getElementById(s);
        if (s === toshow) {
          el.style.display = "block";
        } else {
          el.style.display = "none";
        }
      }
    }

    // Process returned JSON feed to display data.
    function showResults(result) {
      showOneSection('main');

      var titleElement = document.createElement('div');
      var nameNode = document.createTextNode(result.feed.title.$t);
      titleElement.appendChild(nameNode);
      document.getElementById("main").appendChild(titleElement);
      document.getElementById("main").appendChild
(document.createElement("br"));

      list = result.feed.entry;

      for(var i = 0; i < list.length; i++) {
        entry = list[i];
        var divElement = document.createElement('div');
        divElement.setAttribute('class', 'name');
        var valueNode = document.createTextNode(entry.gd$email
[0].address);
        divElement.appendChild(nameNode);
        divElement.appendChild(valueNode);
        document.getElementById("main").appendChild(divElement);
      }
    }

    // Invoke makeRequest() to fetch data from the service provider
endpoint.
    // Depending on the results of makeRequest, decide which version
of the UI
    // to ask showOneSection() to display. If user has approved access
to his
    // or her data, display data.
    // If the user hasn't approved access yet,
response.oauthApprovalUrl contains a
    // URL that includes a Google-supplied request token. This is
presented in the
    // gadget as a link that the user clicks to begin the approval
process.
    function fetchData() {
    alert('fetch');
      var params = {};
      url = "http://localhost:8080/provider/rest/jpg/contact/1?
alt=json";
      params[gadgets.io.RequestParameters.CONTENT_TYPE] =
gadgets.io.ContentType.JSON;
      params[gadgets.io.RequestParameters.AUTHORIZATION] =
gadgets.io.AuthorizationType.OAUTH;
      params[gadgets.io.RequestParameters.OAUTH_SERVICE_NAME] =
"setl";
      params[gadgets.io.RequestParameters.OAUTH_USE_TOKEN] = "always";
      params[gadgets.io.RequestParameters.METHOD] =
gadgets.io.MethodType.GET;

      gadgets.io.makeRequest(url, function (response) {
      alert('before response');
        if (response.oauthApprovalUrl) {
        alert(response);
        alert('making request');
          // Create the popup handler. The onOpen function is called
when the user
          // opens the popup window. The onClose function is called
when the popup
          // window is closed.
          var popup = shindig.oauth.popup({
            destination: response.oauthApprovalUrl,
            windowOptions: null,
            onOpen: function() { showOneSection('waiting'); },
            onClose: function() { fetchData(); }
          });
          // Use the popup handler to attach onclick handlers to UI
elements.  The
          // createOpenerOnClick() function returns an onclick handler
to open the
          // popup window.  The createApprovedOnClick function returns
an onclick
          // handler that will close the popup window and attempt to
fetch the user's
          // data again.
          var personalize = document.getElementById('personalize');
          personalize.onclick = popup.createOpenerOnClick();
          var approvaldone = document.getElementById('approvaldone');
          approvaldone.onclick = popup.createApprovedOnClick();
              alert('making request........');
          showOneSection('approval');
        } else if (response.data) {
          showOneSection('main');
          showResults(response.data);
        } else {
          // The response.oauthError and response.oauthErrorText
values may help debug
          // problems with your gadget.
          var main = document.getElementById('main');
          var err = document.createTextNode('OAuth error: ' +
            response.oauthError + ': ' + response.oauthErrorText);
          main.appendChild(err);
          showOneSection('main');
        }
      }, params);
    }
    // Call fetchData() when gadget loads.
    gadgets.util.registerOnLoadHandler(fetchData);
  </script>
  ]]>
  </Content>
</Module>


application context.xml file which i defined in provider gets loaded
when the server starts:

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security";
  xmlns:beans="http://www.springframework.org/schema/beans";
  xmlns:oauth="http://spring-security-oauth.codehaus.org/2.0";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
              http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.xsd
              http://spring-security-oauth.codehaus.org/2.0
http://spring-security-oauth.codehaus.org/schema/spring-security-oauth-2.0.xsd";>

  <http auto-config='true' access-denied-page="/login.jsp">
    <intercept-url pattern="/xml/contacts" access="ROLE_USER" />
    <intercept-url pattern="/json/contacts" access="ROLE_USER" />
    <intercept-url pattern="/contact/**" access="ROLE_USER" />
    <intercept-url pattern="/oauth/**" access="ROLE_USER" />
    <intercept-url pattern="/request_token_authorized.jsp"
access="ROLE_USER" />
    <intercept-url pattern="/**"
access="IS_AUTHENTICATED_ANONYMOUSLY" />

    <form-login authentication-failure-url="/login.jsp" default-target-
url="/index.jsp" login-page="/login.jsp" login-processing-url="/
login.do"/>
    <logout logout-success-url="/index.jsp" logout-url="/logout.do"/>
  </http>

  <authentication-provider>
    <user-service>
      <user name="jaswinder" password="jassi" authorities="ROLE_USER" /
>
      <user name="rini" password="rini" authorities="ROLE_USER" />
    </user-service>
  </authentication-provider>

  <oauth:provider consumer-details-service-ref="consumerDetails"
                  token-services-ref="tokenServices"
                  request-token-url="/oauth/request_token"
                  authenticate-token-url="/oauth/authorize"
                  authentication-failed-url="/oauth/confirm_access"
                  access-granted-url="/request_token_authorized.jsp"
                  access-token-url="/oauth/access_token"/>

  <oauth:consumer-details-service id="consumerDetails">
    <oauth:consumer name="Consumer.com" key="mysetlkey"
secret="mysetlsecret" resourceName="Your Contacts"
resourceDescription="Your contacts that you have uploaded to
AppProvider.com."/>
  </oauth:consumer-details-service>

  <oauth:token-services id="tokenServices"/>

</beans:beans>



Please help me.................

Thanks,
Jaswinder Singh

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Orkut Developer Forum" group.
To post to this group, send email to opensocial-orkut@googlegroups.com
To unsubscribe from this group, send email to 
opensocial-orkut+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/opensocial-orkut?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to