Rainy
Rainy copied to clipboard
Support for Conboy (Tomboy client for N900)
Hello there,
I have successfully installed Rainy and I am capable of synchronizing my notes in my different machines using Tomboy as client.
But in my N900 I have a client for Tomboy called Conboy, which it was working great with UbuntuOne:
http://conboy.garage.maemo.org/
but I have troubles to do the same with Rainy. When I put the sync URL to:
http://yourserver.com:8080/username/password/
I get the next error: Could not connect to host. Error Message: Server reply was no valid JSON string.
Anyone has some experience with this issue?
Thanks ;O)
The url you have to enter in conboy is not http://yourserver.com///
you actually have to include the username and password into the url, something like this:
http://yourserver.com/johndoe/mypassword/
Where "johndoe" is the username and "mypassword" is the password you specified in the settings.conf file.
I have edited the post (it was wrong).
Yes I put the url of my server port 8080 and the username and password specified in the settings.conf but nothing...
http://yourserver.com:8080/username/password/
Did u make it work using Conboy?
I don't have a Maemo-capable device myself and I have no reports of anyone using it with Rainy. Can you start Rainy with the "-vvvv" parameter and attach the output of the log, when the connection fails?
Hi Dynalon,
here you have the log from my server when I am trying to connect via conboy (Please not that I have edited the logs to not show my credentials):
126 [DEBUG] Logsystem->SetupLogging - logsystem initialized 174 [DEBUG] Logsystem->SetupLogging - Writing all log messages to file: debug.log 871 [DEBUG] Rainy.RainyStandaloneServer->Start - starting http listener at: http://*:8080/ Press RETURN to stop Rainy 7173 [DEBUG] Rainy.WebService.RequestLogFilterAttribute->RequestFilter - Received request at: /username/password//api/1.0?oauth_consumer_key=anyone&oauth_nonce=mtJC8fyovWUbuPkId&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1362598459&oauth_token=&oauth_version=1.0&oauth_signature=2Sf2vDZW78Vujm7VKntiRYdglUw%3D Data received: { Username: username, Password: password } 7181 [DEBUG] Rainy.WebService.ApiService->Get - ApiRequest received 7185 [DEBUG] Rainy.WebService.ResponseLogFilterAttribute->ResponseFilter - Sending response: { user-ref: { api-ref: "http://myserver:8080/api/1.0/username", href: "http://myserver:8080/username" }, oauth_request_token_url: "http://myserver:8080/oauth/request_token", oauth_authorize_url: "http://myserver:8080/oauth/authorize/username/password/", oauth_access_token_url: "http://myserver:8080/oauth/access_token", api-version: 1.0 } 22988 [ERROR] Rainy.WebService.OAuth.OAuthService->Any - Caught exception: Argument cannot be null. Parameter name: key
and this is the log when I succesfully authenticate when using Tomboy:
126 [DEBUG] Logsystem->SetupLogging - logsystem initialized 174 [DEBUG] Logsystem->SetupLogging - Writing all log messages to file: debug.log 336 [DEBUG] Rainy.RainyStandaloneServer->Start - starting http listener at: http://*:8080/ Press RETURN to stop Rainy 5469 [DEBUG] Rainy.WebService.RequestLogFilterAttribute->RequestFilter - Received request at: /username/password/api/1.0 Data received: { Username: username, Password: password } 5477 [DEBUG] Rainy.WebService.ApiService->Get - ApiRequest received 5482 [DEBUG] Rainy.WebService.ResponseLogFilterAttribute->ResponseFilter - Sending response: { user-ref: { api-ref: "http://myserver:8080/api/1.0/username", href: "http://myserver:8080/username" }, oauth_request_token_url: "http://myserver:8080/oauth/request_token", oauth_authorize_url: "http://myserver:8080/oauth/authorize/username/password/", oauth_access_token_url: "http://myserver:8080/oauth/access_token", api-version: 1.0 } 5670 [DEBUG] Rainy.WebService.OAuth.OAuthService->Any - granting request token oauth_token=5b5c3df0-b010-4cb8-b28d-73d24b81eab0&oauth_token_secret=87c23d73-ddf5-4eaa-aed2-92187170a737&oauth_callback_confirmed=true to consumer 5995 [DEBUG] Rainy.WebService.RequestLogFilterAttribute->RequestFilter - Received request at: /oauth/authorize/username/password/?oauth_token=5b5c3df0-b010-4cb8-b28d-73d24b81eab0&oauth_callback=http%3a%2f%2flocalhost%3a8000%2ftomboy-web-sync%2f Data received: { Username: username, Password: password } 6004 [INFO ] Rainy.WebService.OAuth.OAuthAuthorizeService->Any - Successfully authorized user: username 6005 [DEBUG] Rainy.WebService.OAuth.OAuthAuthorizeService->Any - created an access token for user username: oauth_token=5b5c3df0-b010-4cb8-b28d-73d24b81eab0&oauth_token_secret=87c23d73-ddf5-4eaa-aed2-92187170a737&oauth_callback_confirmed=true 6005 [DEBUG] Rainy.WebService.OAuth.OAuthAuthorizeService->Any - redirecting user to consumer at: http://localhost:8000/tomboy-web-sync/?oauth_verifier=337ca466-7f30-4c7c-afbb-e137c1dc935e&oauth_token=5b5c3df0-b010-4cb8-b28d-73d24b81eab0 6263 [DEBUG] Rainy.WebService.RequestLogFilterAttribute->RequestFilter - Received request at: /oauth/access_token Data received: {
} 6266 [DEBUG] Rainy.WebService.OAuth.OAuthAccessTokenService->Any - permanently authorizting access token: oauth_token=263056ee-3303-4273-92d9-fd5190c2f392&oauth_token_secret=ff27860b-b89d-4e20-a57d-03e09577dc74
I think I found the problem, Rainy's current OAuth is limited to accepting parameters via query string, but it seems conboy uses HTTP POST (which is allowed by the OAuth specs) which is not yet implemented in Rainy (that what I could find out by the source of conboy at https://garage.maemo.org/plugins/scmsvn/viewcvs.php/conboy/trunk/conboy/src/conboy_oauth.c?view=markup)
I was aware of that while implementing the OAuth stuff and had made a note in the source: https://github.com/Dynalon/Rainy/blob/master/Rainy/WebService/OAuth/OAuthService.cs#L73
So this is a valid bug that I'd like to have fixed, but sorry I can't provide an ETA right now.
Hi Dynalon,
Rainy is working great between my workstations, but I am really missing the fact that I can't use it in my N900... are u planning to implement the code with support of HTTP POST in the near future?
I'm sorry, I don't know when this will be done. Right now all work goes towards making Rainy a public server with open registration, and there is lots of stuff missing for that. Fixing this bug would be especially hard since I can't reproduce. And since the N900/Maemo are rare devices, I can't tell when this bug gets fixed, sorry.
It's a pity :(
Would it be too difficult to implement this option? I don't have much experience in programation but maybe I could give it a try, do you have some ideas or recommendations of how could this be done? Thanks
I'd like to see this working, too. Conboy is one of the reasons why I still use a N900, and Rainy may attract more N900/N9 users now that they must look for alternatives to U1 syncing.
enekux, have you tried contacting the Conboy developer or Maemo forum members? Perhaps it could be modified instead, replacing "POST" with "GET" in oauth_sign_url2 calls and possibly some http_post auth calls with http_get. My C skills are rusty, but I bet anyone with a bit more experience could make those changes, as Conboy's OAuth code seems quite simple.
Hi Martinique! I see that we share similar problem and I was planning to notify Conboy developers about this issue but I see that u have already done it, which is great. Thanks and let us keep informed about this issue.
Hi again,
I see you have a done a big progress with your project. Any chance to make it work with Conboy? You can use me for tests :)
I won't be doing Conboy support, but would of course accept it as a contribution. I personally consider it a "legacy" software as development on conboy seems to have halted and the device it runs (Meego based) have very low market share and tendency is more that it is going to be even fewer in the future.
N900 might be old, but I'm one more user who would really appreciate to have conboy working with Rainy. I'll take a look myself, but I never touch C#.
Conboy sync works with grauphel, the owncloud tomboy plugin. It supports POSTed oauth parameters. Maybe it could be an alternative for you.
What a coincidence. Not long ago I started running OwnCloud and I was wondering if it could be used for note syncing. I'm going to need Tomdroid support and preferrably a web interface too, though, but I'll keep an eye on that project. Thanks for the tip, cweiske!