@@ -0,0 +1,911 @@
+from werkzeug.urls import url_decode%0Aimport foauth.providers%0A%0A%0Aclass ThirtySevenSignals(foauth.providers.OAuth2):%0A    # General info about the provider%0A    alias = '37signals'%0A    name = '37signals'%0A    provider_url = 'https://37signals.com/'%0A    docs_url = 'https://github.com/37signals/api'%0A    category = 'Productivity'%0A%0A    # URLs to interact with the API%0A    authorize_url = 'https://launchpad.37signals.com/authorization/new?type=web_server'%0A    access_token_url = 'https://launchpad.37signals.com/authorization/token?type=web_server'%0A    api_domains = %5B%0A        'launchpad.37signals.com',%0A        'basecamp.com',%0A        'campfire.com',%0A        'highrisehq.com',%0A    %5D%0A%0A    available_permissions = %5B%0A        (None, 'access your information'),%0A    %5D%0A%0A    def get_user_id(self, key):%0A        r = self.api(key, self.api_domains%5B0%5D, u'/authorization.json')%0A        return unicode(r.json%5Bu'identity'%5D%5Bu'id'%5D)%0A

Add 37signals products