Cones /

Filename Size Date modified Message
3.4 KB
2.3 KB
72 B
946 B

It's not pylons, it's cones! Seriously, a "pylons-lite" webapp 
framework with facebook app utilities, presently targeted for GAE,
but extensible to other wsgi platforms.

Getting Cones and Running the Sandbox App

From a shell:

hg clone
cd cones
virtualenv conehead
conehead\Scripts\activate.bat # linux/macos: source/bin/activate
python sdist
pip install -f file://%CD%/dist -r requirements.txt # linux/macos: s/%CD%/$PWD/
python conehead sandbox

Facebook and Appengine config:

You'll need an iframe facebook app setup from with the canvas url
pointing to your server/path. Also, set a deauthorize url to
server/path/auth/deauthorize, if you want cones to track app 
deauthorize requests.

Review the sandbox/config*.py files and make appropriate changes,
specifically the items in and/or 
the app names(s) in if you are pushing to App Engine.

Getting on the net:

To run sandbox under the appengine devserver against facebook you'll
need a public IP. Some ways of doing this are 
1 - put your dev machine on the net with a public IP (not recommended)
2 - port forward from your public IP to your dev instance
3 - have a webserver proxy from a public IP to your instance

I do the latter with apache and my config is

<IfModule mod_proxy.c>
  ProxyRequests Off

  <Proxy *>
    Order Deny,Allow
    Allow from all

  ProxyPass /fb/t5sandbox
  ProxyPassReverse /fb/t5sandbox


For more info see

Go for it:

If everything's wired up correctly, try your facebook app url, e.g.,, or one of the auth test urls, ,


This library is in a very experimental dev stage. As the man says:
Issues, comments, suggestions via bitbucket, or however else you
might find me.


Cones includes code from and, because these are not distributed
in a distutils friendly fashion. Both are distributed under the Apache 2.0
license cited below.

Code in cones/fb*.py is adapted from the facebook python sdk at All original code herein is licensed
under the same terms as, namely the
Apache License, Version 2.0:


# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

Rod Morison, Nov 2010
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.