On 30 Jan 2013, at 17:21, Sabine Knöfel <sabine.knoefel@gmail.com> wrote:
Hi Sven, hi Jan,
thank you. I am one step further now but there must be something else missing to load. I failed with my current image, so I tried the following:
I took a fresh image - the Pharo 1.4. one click app from the pharo homepage (http://gforge.inria.fr/frs/download.php/31258/Pharo-1.4-14557-OneClick.zip)
Then I loaded seaside 3.0 (from the welcome screen - MetacelloConfigurationBrowser open).
After that, I loaded
Gofer it url: 'http://mc.stfx.eu/ZincHTTPComponents'; package: 'ConfigurationOfZincHTTPComponents'; load.
And then the bleeding Edge version ConfigurationOfZincHTTPComponents project bleedingEdge load: 'SSO'.
Then this was possible: (ZnServer startDefaultOn: 8100) logToTranscript; debugMode: true; delegate: (ZnSSOServerDelegate new dropboxData: (ZnOAuth1ConsumerData newForDropbox consumer: 'my appdata'; consumerSecret: 'my appdata'; yourself); yourself).
No I tried in my browser localhost:8100/sso-dropbox
Then I got a walkback in my Image: No secure socket stream class set or available
Well, the error says it all: you need TLS/SSL support. As is noted in https://github.com/svenvc/docs/blob/master/zinc/zinc-sso-paper.md#installati... You can get Zodiac to work in 1.4 http://zdc.stfx.eu Don't forget that you also need the plugin next to your VM ! In Pharo 2.0 Zodiac is included by default the latest VM's there should have the plugin. But in 2.0 it will be slightly more difficult to load Seaside, but it does work. Sorry, but all this is still a bit in motion, hopefully you will keep trying.
==>> I do not have the class ZdcSecureSocketStream in my Image self secureSocketStreamClass is Nil in
streamClassForScheme: scheme (#(http ws) includes: scheme) ifTrue: [ ^ self socketStreamClass ]. (#(https wss) includes: scheme) ifTrue: [ ^ self secureSocketStreamClass ifNil: [ self error: 'No secure socket stream class set or available' ] ]. (ZnUnknownScheme scheme: scheme) signal
Can you tell me what is missing to load?
Greetings Sabine
30 January 2013 5:14:22.402 pm
ZnNetworkingUtils(Object)>>error: Receiver: a ZnNetworkingUtils Arguments and temporary variables: aString: 'No secure socket stream class set or available' Receiver's instance variables: socketStreamClass: SocketStream secureSocketStreamClass: nil
ZnNetworkingUtils>>streamClassForScheme: Receiver: a ZnNetworkingUtils Arguments and temporary variables: scheme: #https Receiver's instance variables: socketStreamClass: SocketStream secureSocketStreamClass: nil
ZnNetworkingUtils>>socketStreamToUrlDirectly: Receiver: a ZnNetworkingUtils Arguments and temporary variables: url: https://api.dropbox.com/1/oauth/request_token stream: nil address: #[199 47 218 158] Receiver's instance variables: socketStreamClass: SocketStream secureSocketStreamClass: nil
ZnNetworkingUtils>>socketStreamToUrl: Receiver: a ZnNetworkingUtils Arguments and temporary variables: url: https://api.dropbox.com/1/oauth/request_token Receiver's instance variables: socketStreamClass: SocketStream secureSocketStreamClass: nil
On Wed, Jan 30, 2013 at 4:37 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote: Sabine,
On 30 Jan 2013, at 16:24, Sabine Knöfel <sabine.knoefel@gmail.com> wrote:
Hi Sven,
after loading:
Gofer it url: 'http://mc.stfx.eu/ZincHTTPComponents'; package: 'ConfigurationOfZincHTTPComponents'; load.
ConfigurationOfZincHTTPComponents project latestVersion load: 'SSO'.
The ZnOAuth1ConsumerData does not have a method called >>newForDropbox (but >>newForGoogle and >>newForTwitter). Also, ZnSSOServerDelegate does not have a method >>dropboxData: (but facebook, twittter and google)
Did I miss something?
Yes and no. The latest stable version of the configuration does not yet include the Dropbox code. The following will load what is called bleedingEdge, the very latest version of everything, regardless of its release status.
ConfigurationOfZincHTTPComponents project bleedingEdge load: 'SSO'.
Sorry about that.
Sven
Greetings Sabine
On Sun, Jan 27, 2013 at 8:47 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 27 Jan 2013, at 13:32, Sven Van Caekenberghe <sven@stfx.eu> wrote:
If anyone is interested, I can write another email explaining how you can run this demo for yourself on your own account.
How to run the Dropbox code yourself:
1. Get yourself a free Dropbox account at http://www.dropbox.com
2. Install some client software on one or more of your computers (Mac, Windows, Linux) or devices (iOS [iPhone, iPad, iPod], Android, BlackBerry, Kindle Fire) and move some files around to get a feel for the service.
3. When you give other applications access to (part of) your Dropbox files, you can check that at https://www.dropbox.com/account#applications
4. Define your own app that will try to access Dropbox files. Go to https://www.dropbox.com/developers (Developer home) and start defining a new app by clicking the 'Create an app' button at https://www.dropbox.com/developers/apps - start with the access type 'App folder'.
5. The two important elements you need are the 'App key' and 'App secret', make sure to copy them correctly.
6. Get the very latest code in your image (we develop in Pharo 2.0, but 1.4 or even 1.3 should work - SSL has to be fully operational).
Gofer it url: 'http://mc.stfx.eu/ZincHTTPComponents'; package: 'ConfigurationOfZincHTTPComponents'; load.
ConfigurationOfZincHTTPComponents project latestVersion load: 'SSO'.
7. Start a Zn server with an appropriate delegate, configured for your app
(ZnServer startDefaultOn: 8100) logToTranscript; debugMode: true; delegate: (ZnSSOServerDelegate new dropboxData: (ZnOAuth1ConsumerData newForDropbox consumer: 'vqz-app-key-zoca'; consumerSecret: '13u-app-secret-8l006'; yourself); yourself).
(The above is a demo setup limited to Dropbox, the other demos are not configured and won't work).
8. Go to http:://localhost:8100/sso-dropbox and click the link to log in - you will be transferred to Dropbox to log in (if you aren't already) and asked to authorise your demo app, after which Dropbox will redirect you back to your app.
9. Once back in your app, sso-dropbox-callback (#ssoDropboxCallback:) will access your account info and list the app root folder, which will then be shown.
10. For the rest of the API, (currently not yet implemented), see https://www.dropbox.com/developers/reference/api - you don't have to worry about the whole authentication thanks to Zinc-SSO.
We would love for others to try this (as well as the other Zinc-SSO options, Google, Facebook, Twitter) out, in their own projects, and to provide actual feedback and generally help improve the code and documentation.
As always, May the Source be with you!
Sven
PS: The demo app is not (yet) a production app: only you and up to 5 explicitly listed users can use it. You have to apply for production status later on. Also, the whole ZnSSOServerDelegate code is a demo, for an actual project, it would be best to extract the necessary parts out of it, reusing the underlying Zinc-SSO-OAuth1-Core framework.
-- Sven Van Caekenberghe http://stfx.eu Smalltalk is the Red Pill