Of course I can tell you the things I know about 3 legged oauth. But that´s is just what I figured out from http://code.google.com/p/opensocial-java-client/wiki/HowToConnecting. The 3 legged oauth allows the app to work with social data without running applications inside the social network. So the user enters his name an password and the app asks, if the user allows, that the app access personal data. If the user allows, the app gets his data, for example the data of the user profile or the list of friends.

That is exactly what I want. I want to write an android application, that allows me to get the data from our social network software, where shindig is integreated in. I thought, the best way to test this, is to run shindig standalone and uses the android app to open a connection to shindig. I hope, that is the correct way ... isn´t it.?

To learn more about the 3 legged auth, the opensocial java client has a demo in it. You find in \opensocial-java-client-1.0\java\demos\ThirdLeg.

In the open social java client there is an android app (\opensocial-java-client-1.0\android\demos\friendlist) as well. If you want to start the demo, you have to do the following:

Include the OpenSocialActivity and OpenSocialChooserActivity from \opensocial-java-client-1.0\android\src\org\opensocial\android Include common-codec-1.3.jar, json_simple-1.1.jar, junit-4.5.jar oauth-20090825.jar.

If you start the demo , it will open a connection to google via the GooogleProvider. Now the browser shows you a login screen and you can enter everything. So that means, that is nothing, I have to write on my own. I´ts already there.

After testing the google Provider I ´ve tested it with MySpaceProvider, too and it works.

Instead of using a google or myspace provider you can use a shindig provider as well, by giving it parameters like consumer key and consumer secret.

All I want to know the right consumer key, consumer secret and requestTokenUrl, accesTokenUrl and authorizeUrl. I thougt the consumer key and secret is:

"http://localhost:8080/samplecontainer/examples/shindigoauth.xml"; : {
    "shindig" : {
"consumer_key" : "http://localhost:8080/samplecontainer/examples/shindigoauth.xml";,
      "consumer_secret" : "secret",
      "key_type" : "HMAC_SYMMETRIC"
    }
  }
}
like the oauth.json says.

And the urls are:

<Service name="shindig">
<Request url="http://192.168.1.138:8081/oauth/requestToken"; />
<Authorization url="http://192.168.1.138:8081/oauth/authorize?oauth_callback=http://192.168.1.138:8081/gadgets/oauthcallback"; />
<Access url="http://192.168.1.138:8081/oauth/accessToken"; />
</Service>

like the shindigoauth.xml says.

But it simply does not work.

It would be so great, if you or somebody else have any ideas on this.

Greetings







Am 13.10.2010 12:12, schrieb Christiaan Hees:
I don't know the details about 3 legged oauth yet so I can't help
there. I would like to know more about it, so let me know if you find
out.
Btw, the comment in my source at the top was wrong, it should be:
// See content/sampledata/canonicaldb.json
That's where I found the oauth key and secret.
I'm not sure if that's relevant to 3 legged oauth at all though...

Maybe somebody else could shine some light on this?

On Wed, Oct 13, 2010 at 11:42 AM, Christine Bauers<[email protected]>  wrote:
  Yes, that might be right for 2 legged oauth. But I have to use the 3 -
legged oauth, because the user has connect to this social network by typing
in it´s own name an password. That means the app starts the browser and the
user writes name an password. After this, there will be a redirect to the
app. I´m not sure, if this is possible with 2 legged auth.

At the moment shindig is not running local. It´s running on our testserver.
But that makes no differnce, doesn´t it? The only thing I have to change ist
localhost to the ip adress of the sever. And do I have to do something to do
to access on port 9090?

Why did you use
http://localhost:8080/samplecontainer/examples/SocialHelloWorld.xml as
consumer key? oauth.json says

"http://192.168.1.138:8081/samplecontainer/examples/shindigoauth.xml"; : {
    "shindig" : {
      "consumer_key" :
"http://192.168.1.138:8081/samplecontainer/examples/shindigoauth.xml";,
      "consumer_secret" : "secret",
      "key_type" : "HMAC_SYMMETRIC"
    }
  }

Why did you use these urls?

  //provider.setAuthorizeUrl("http://localhost:9090/oauth-provider/authorize";);
  
//provider.setAccessTokenUrl("http://localhost:9090/oauth-provider/access_token";);
  
//provider.setRequestTokenUrl("http://localhost:9090/oauth-provider/request_token";);

I thought, I have to use the urls from shinigoauth.xml, because I want to
run the 3 - legged oauth demo:

<Service name="shindig">
<Request url="http://192.168.1.138:8081/oauth/requestToken"; />
<Authorization
url="http://192.168.1.138:8081/oauth/authorize?oauth_callback=http://192.168.1.138:8081/gadgets/oauthcallback";
/>
<Access url="http://192.168.1.138:8081/oauth/accessToken"; />
</Service>

I´m really sorry about these (maybe stupid) questions .... but I really need
help.

Thank you so much
Greetings


Am 13.10.2010 11:15, schrieb Christiaan Hees:
The SampleOAuthDataStore from Shindig should work out of the box. I
got it to work with the opensocial java client and the code below.
What also helped me a lot was to turn on logging of the opensocial
java client. You can also look at logs of shindig to get some other
hints.


package nl.q42.oauth;

import java.util.List;

import org.opensocial.Client;
import org.opensocial.Request;
import org.opensocial.Response;
import org.opensocial.auth.AuthScheme;
import org.opensocial.auth.OAuth2LeggedScheme;
import org.opensocial.models.Person;
import org.opensocial.providers.Provider;
import org.opensocial.providers.ShindigProvider;
import org.opensocial.services.PeopleService;

public class ShindigOauthTester {

   // See shindig/config/oauth.json

   private final static String consumerKey =
"http://localhost:8080/samplecontainer/examples/SocialHelloWorld.xml";;
   private final static String consumerSecret = "secret";
   private final static String openSocialId = "110608369266279337293"; //
TODO

   public ShindigOauthTester() throws Exception {
     Provider provider = new ShindigProvider();


//provider.setAuthorizeUrl("http://localhost:9090/oauth-provider/authorize";);

//provider.setAccessTokenUrl("http://localhost:9090/oauth-provider/access_token";);

//provider.setRequestTokenUrl("http://localhost:9090/oauth-provider/request_token";);

     AuthScheme scheme = new OAuth2LeggedScheme(consumerKey,
consumerSecret, openSocialId);

     Client client = new Client(provider, scheme);

     Request request = PeopleService.getFriends();
     Response response = client.send(request);

     List<Person>    friends = response.getEntries();
     for (Person friend : friends) {
       System.out.println(friend.getDisplayName());
     }
   }

   public static void main(String[] args) throws Exception {
     new ShindigOauthTester();
   }
}




On Wed, Oct 13, 2010 at 10:54 AM, Christine Bauers<[email protected]>    wrote:
  Thanks for your answer. You´re right. It should be http:// instead of
http:/ of course. I´ve fixed that and it does not work as well. I´ve read
on
the

http://opensocial-net-client.googlecode.com/svn-history/r8/trunk/src/OpenSocial.Client/Client/OpenSocialProvider.cs
site, that I have to use an oauthprovider for shindig from

http://oauth.googlecode.com/svn/code/java

Is this oauthprovider already integrated in shindig or do I have to run
it
seperately?

You have written you was experimenting with 2 legged Oauth. Did you use
the
opensocial java client demo app? And could you maybe give me example?

Greetings



Am 13.10.2010 10:20, schrieb Christiaan Hees:
In shindigoauth.xml you seem to be missing a / on the<Access>      part.
It should be http:// instead of http:/ so maybe that's related.
I was just experimenting with 2 legged OAuth myself and I got it
working using the sample implementation that uses oauth info from
content/sampledata/canonicaldb.json. I'm not sure if that's also
relevant for your case but you might want to check that out.

On Tue, Oct 12, 2010 at 9:35 PM, Christine Bauers<[email protected]>
  wrote:
  Hi shindig users,

I´m trying to use the android demo app of the open social java client
to
connect to Shindig.

I ´ve deployed the shindig.war on a server. To do this, I´ve named it
ROOT.war and I deleted the ROOT dir.This works. Now I want to open a
connection via the demo app to make some restful calls. To do this, I
use
the MyShindigProvider class which extends
org.opensocial.providers.Provider
to set the urls:

setName("shindig");
setVersion("0.8");
setRestEndpoint("http://server:8081/social/rest/";);
setAuthorizeUrl("http://server:8081/oauth/authorize";);
setAccessTokenUrl("http://server:8081/oauth/accessToken";);
setRequestTokenUrl("http://server:8081/oauth/requestToken";);
if (!useRest) {
setRpcEndpoint("http://192.168.1.138:8081/social/rpc/";);
}
addRequestTokenParameter("scope", getRequestTokenUrl() + " "
+getRpcEndpoint());
I got these urls from the shindigoauth.xml in
samplecontainer/example.Are
these urls correct? Do I maybe have to use https for authorization? And
if,
what are the correct urls then?

addProvider(new MyShindigProvider(), new String[]
{"http://server:8081/samplecontainer/examples/shindigoauth.xml";,
"secret"});

I got these consumer key and consumer secret from the oauth.json. Are
these
Parameters right or is there another consumer key?

After this I´ve set the scheme in friendlistclass
setScheme("http://server:8081/gadgets/oauthcallback";) to set the
callback
url and edited the shindigoauth.xml:

<Service name="shindig">
<Request url="http://server:8081/oauth/requestToken"; />
<Authorization


url="http://server:8081/oauth/authorize?oauth_callback=http://server:8081/gadgets/oauthcallback";
/>
<Access url="http:/server:8081/oauth/accessToken" />
</Service>

Now I get an OAuthException, because I can´t get any requestToken. .
What
did I forget?

Greetings
Christine Bauers

--
Christine Bauers, Softwareentwicklung


Lyncker&       Theis GmbH
Wilhelmstr. 16
65185 Wiesbaden
Germany

Fon +49 611/9006951
Fax +49 611/9406125


Handelsregister: HRB 23156 Amtsgericht Wiesbaden
Steuernummer: 4023897051
USt-IdNr.: DE255806399

Geschäftsführer:
Filip Lyncker,
Armin Theis



--
Christine Bauers, Softwareentwicklung


Lyncker&     Theis GmbH
Wilhelmstr. 16
65185 Wiesbaden
Germany

Fon +49 611/9006951
Fax +49 611/9406125


Handelsregister: HRB 23156 Amtsgericht Wiesbaden
Steuernummer: 4023897051
USt-IdNr.: DE255806399

Geschäftsführer:
Filip Lyncker,
Armin Theis




--
Christine Bauers, Softwareentwicklung


Lyncker&   Theis GmbH
Wilhelmstr. 16
65185 Wiesbaden
Germany

Fon +49 611/9006951
Fax +49 611/9406125


Handelsregister: HRB 23156 Amtsgericht Wiesbaden
Steuernummer: 4023897051
USt-IdNr.: DE255806399

Geschäftsführer:
Filip Lyncker,
Armin Theis

Reply via email to