For the basics of the rendering parameters... For the request parameters, are you talking about what is in bullet item 6? http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/Gadget s-API-Specification.html#rfc.section.3.1
The ones we found missing for URL developer consumption, but were already part of Shindig's iframe url, were: view, view-params. We also added one additional parameters for developers: env - to let them know what environment they are running in, e.g. production, sandbox and dev. For our use (not gadget developers use) we need: parent, rpctoken We do security in our own way, since we are integrating to legacy applications. Our security token is very long, so the resultant request must be done by a POST, as the URL exceeds IE's limit of 2000 rather quickly. It is through the security tokens that the developer gets the equivalent of viewer. Plus our tokens are time stamped so caching is not an issue for us. makeRequest documents signing by Oauth, which might be more applicable. For the JS libraries... In order to make use of as much of the JS functions as possible, you need things like hangman substituted messages and preloads. These are very dependent upon what the users specific parameters were, and make Facebook's approach with static JS less desirable. And the "libs" approach of iGoogle require a more stateful server (a problem with a cluster of machines). So once we went with the POST the limit on parameter size was lifted. We put everything needed into a single "is" parameter. It includes <script src=...> tags, it includes the call to gadgets.config, plus a bit more. Plus this parameter is signed to ensure it is not tampered with. Once we did this, large pieces of the core JS API works. The other item is that gadgets core, and rpc use document.location. For obvious things like prefs, but also for rpctoken and parent. This is OK for the very first render, but most URL developers will have multiple pages. For this the "is" parameter includes a "fake url" that can be parsed inside of the gadgets API to get the info, simply replaced document.location with "gadgets_location_href_override || document.location.href;" For a limited JS functionality... If all we want is basic rpc/pubsub, static JS includes would be fine. This may be a good starting point for a standard implementation. The goals would be to ensure security and portability (if possible) Security - at least today, the gadget developer needs to run (and trust) JS code from the gadget server. Portability - can we create a method that will let developers run on multiple sites, hopefully w/o a whitelist of trusted sites? -----Original Message----- From: [email protected] [mailto:[email protected]] Sent: Monday, September 28, 2009 12:09 PM To: [email protected] Subject: RE: Reverse proxy and URL gadgets Yes we can work for a common solution to this problem and a standard way to integrate these gadgets.* API features for URL gadgets. For starter we can target pubsub, dynamic height (as we also have found them very much required and we have them implemented in our Shindig code base). Also for #3 if we can have a standard way for forwarding the request paramters to the URL gadgets that will reduce the use of makRequest calls - this as we have seen increases the server round trips. Thanks, Samik ________________________________ From: Weygandt, Jon [mailto:[email protected]] Sent: Mon 9/28/2009 11:44 PM To: [email protected] Subject: RE: Reverse proxy and URL gadgets Regarding #2, parts of the JS features have been implemented for URL gadgets Myspace: http://wiki.developer.myspace.com/index.php?title=Messaging_from_an_IFra me eBay: http://developer.ebay.com/DevZone/selling-manager-applications/Concepts/ SellingManagerApps_APIGuide.html#starting iGoggle: with "limited" support for gadgets.* API, using the libs parameter. I wonder if there are other examples? All of these have different methods for inclusion of the JS, which is a problem for writing portable gadgets. I believe the most important feature to support is RPC and dynamic height. In the future pubsub will also be valuable. Features like makeRequest, and by extension the OpenSocial data requests, are difficult to support due to the same origin policy for XMLHttpRequest. But then, gadget developers choosing to do a URL gadget can use REST and RPC. There's an interesting proposal for OpenSocial, but not for v1.0, regarding this: http://wiki.opensocial.org/index.php?title=Support_iframe_model_applicat ion_in_gadget_spec While we have already solved this, if there is interest, I'd be interested in working for a common solution. Jon -----Original Message----- From: [email protected] [mailto:[email protected]] Sent: Monday, September 28, 2009 4:33 AM To: [email protected] Subject: Reverse proxy and URL gadgets Hi, Working with Shindig we have come across some use cases for which we modified shindig code base. 1. For URL gadgets shindig do redirect to the gadget URL, however in the reverse proxy it's an issue for web masters. So we have modified that part to respond as HTTP 200 (no redirect). 2. Why shindig does not support the JS features for URL gadgets? [One reason could be cross site scripting but in *a company setup* with *reverse proxy* this can be useful feature to have] 3. Request parameter passing to all gadgets - We have modified Shindig to pass all the request parameters to the gadgets in a page. We have these features implemented, we love to get an opinion of the community regarding these changes. Thanks, Samik Please do not print this email unless it is absolutely necessary. The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com Please do not print this email unless it is absolutely necessary. The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com

