Hi Jordan,

First thanks you for this interesting faq!

Could you create an issue for this and provides a diff from this:
https://svn.apache.org/repos/asf/incubator/shindig/trunk/site/src/site/fml/faq.fml

I am willing to apply it.

Thanks!

Vincent

2009/5/4, Jordan Zimmerman <[email protected]>:
> Here is a first pass at a newbie FAQ. There's still lots I'd like to
>  add, but I thought I'd let the community have a look at this point:
>
>     Shindig Newbie FAQ
>     v 0.1
>     by Jordan Zimmerman
>
>  * Who this FAQ is For
>     * Someone starting from "square one" with Shindig
>     * Developers needing to integrate Shinding into their app
>     * Shindig developers who are at their wits end
>
>  * Shindig is an application not a code library
>     * Can only be hosted in a Servlet Container that supports WARs
>     * If you are used to code libraries, take a step back. Shindig is a
>
>       self-contained application. You plug into it to integrate with
>  your
>       application.
>
>  * Shindig is, essentially, undocumented
>     * Shindig does not have a user manual of any kind
>     * You must search the net for documentation
>         * Some of the docs are good
>         * Some are out of date
>     * See the "Important URLs" section below from some helpful links
>
>  * Important directories:
>     * <shindig>/java/server/target - maven target for the built Shindig
>  WAR:
>         shindig-server-1.1-SNAPSHOT.war
>     * Main source directories:
>         <shindig>/java/common/src/main/java
>         <shindig>/java/gadgets/src/main/java
>         <shindig>/java/server/src/main/webapp
>         <shindig>/java/social-api/src/main/java
>
>  * Learn how to use Maven
>     * Shindig is built via Maven
>     * In order to integrate with your app, you will need to change
>  Shindig
>       files and rebuild Shindig
>
>  * Learn about Guice and dependency injection
>     * Shindig is built using Google's Guice dependency injection library
>     * The only way to integrate your own code is via Guice
>
>  * You need to write a Guice module
>     * In order to integrate with your app, you will need to write a
>  Guice
>       Module
>     * This module needs to be added to Shindig's web.xml list of modules
>     * Your module _replaces_ SampleModule.java
>     * Your module will most likely need to copy some of the code in
>       SampleModule.java
>
>  * You will need to modify web.xml
>     * Shindig's main web.xml must be modified to add your code
>     * location: <shindig>/java/server/src/main/webapp/WEB-INF/web.xml
>
>  * Implement PersonService, AppDataService, and ActivityService
>     * These are the closest things to APIs in Shindig
>     * These interfaces handle data storage/retrieval for various
>  OpenSocial
>       methods
>     * You need to register your implementations of these interfaces in
>  your
>       Guice module
>     * This doc is not bad:
>
>  http://cwiki.apache.org/SHINDIG/providing-your-own-data-service-implemen
>  tation.html
>
>  * SecurityToken
>     * The SecurityToken object is the key to integrating your app with
>       Shindig
>     * There are lots of methodologies for doing this
>     * One option is to register (via your Guice module) an
>  implementation of
>       The AuthenticationHandler interface. The important method is
>       getSecurityTokenFromRequest().
>
>  * OAuth
>     * You should read the OAuth spec/docs: http://oauth.net/
>     * OAuth is an authentication specification
>     * For Shindig/OpenSocial, it allows a server to validate OS
>       makeRequest() calls
>     * This FAQ does not deal 3-legged OAuth
>     * To get OAuth working, you only need to implement the OAuthStore
>       interface and register it via your Guice module
>     * On your server that handles the makeRequest() method, you can use
>  the
>       code from ouath.net to validate the OAuth parameters
>     * The existing OAuth Shindig docs are confusing. Read them, but
>  realize
>       that you need more info than they provide.
>
>  * Container, iframe, Hostnames
>     * You will read about the "container". Shindig is an OpenSocial
>       container. However, Shindig has its own concept of a container: a
>  page
>       that contains gadgets. Think of an iGoogle page with applets in
>  it.
>       The iGoogle page is the container.
>     * Each gadget is a self-contained <iframe> in the container page.
>     * For security reasons, the gadget iframe URL should be a hostname
>       _different_ than the container hostname. This prevents the gadget
>  from
>       getting the container's cookies, DOM, etc.
>     * A lot of Shindig docs assume that your container is written in
>  pure
>       Javascript. However this is not a requirement.
>
>  * Container Responsibilities
>     * TBD
>
>  * Important URLs:
>     * http://incubator.apache.org/shindig/
>     * http://cwiki.apache.org/SHINDIG/index.html
>     *
>  http://cwiki.apache.org/SHINDIGxSITE/how-to-support-features-that-depend
>  -on-gadgetsrpc.html
>     * http://incubator.apache.org/shindig/mail-lists.html (subscribe to
>       these listservs)
>     * http://code.google.com/p/mediated-opensocial/ - this is how this
>  FAQ
>       writer integrated Shindig
>
>
>
>
>  Jordan Zimmerman
>  Principal Software Architect
>  831.647.4712
>  831.214.2990 (cell)
>  [email protected]
>
>  SHOP*COMTM
>  Shop Smart, Save Big(tm)
>  www.shop.com
>
>  This message (including any attachments) is intended only for
>  the use of the individual or entity to which it is addressed and
>  may contain information that is non-public, proprietary,
>  privileged, confidential, and exempt from disclosure under
>  applicable law or may constitute as attorney work product.
>  If you are not the intended recipient, you are hereby notified
>  that any use, dissemination, distribution, or copying of this
>  communication is strictly prohibited. If you have received this
>  communication in error, notify us immediately by telephone and
>  (i) destroy this message if a facsimile or (ii) delete this
>  message
>  immediately if this is an electronic communication.
>
>  Thank you.
>

Reply via email to