{"action":"created","issue":{"url":"https://api.github.com/repos/antony/grails-oauth-scribe/issues/46","labels_url":"https://api.github.com/repos/antony/grails-oauth-scribe/issues/46/labels{/name}","comments_url":"https://api.github.com/repos/antony/grails-oauth-scribe/issues/46/comments","events_url":"https://api.github.com/repos/antony/grails-oauth-scribe/issues/46/events","html_url":"https://github.com/antony/grails-oauth-scribe/issues/46","id":77382452,"number":46,"title":"Problems running Grails app ","user":{"login":"SaschaMoellering","id":1321549,"avatar_url":"https://avatars.githubusercontent.com/u/1321549?v=3","gravatar_id":"","url":"https://api.github.com/users/SaschaMoellering","html_url":"https://github.com/SaschaMoellering","followers_url":"https://api.github.com/users/SaschaMoellering/followers","following_url":"https://api.github.com/users/SaschaMoellering/following{/other_user}","gists_url":"https://api.github.com/users/SaschaMoellering/gists{/gist_id}","starred_url":"https://api.github.com/users/SaschaMoellering/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SaschaMoellering/subscriptions","organizations_url":"https://api.github.com/users/SaschaMoellering/orgs","repos_url":"https://api.github.com/users/SaschaMoellering/repos","events_url":"https://api.github.com/users/SaschaMoellering/events{/privacy}","received_events_url":"https://api.github.com/users/SaschaMoellering/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-05-17T19:52:10Z","updated_at":"2015-05-18T08:52:18Z","closed_at":null,"body":"Hi,\r\n\r\ncurrently I'm trying to use your plugin, but I always run into the following problem:\r\n\r\n```\r\nCaused by InvalidOauthProviderException: [:] configured as an API for twitter does not appear to be a valid Class. It should be a class extending from the org.scribe.builder.Api class\r\n```\r\n\r\nMy BuildConfig.groovy:\r\n```\r\nplugins {\r\n        // plugins for the build system only\r\n        build \":tomcat:7.0.55.2\" // or \":tomcat:8.0.20\"\r\n\r\n        // plugins for the compile step\r\n        compile \":scaffolding:2.1.2\"\r\n        compile ':cache:1.1.8'\r\n        compile \":asset-pipeline:2.1.5\"\r\n        compile \":jetty:3.0.0\"\r\n        compile \":standalone:1.3\"\r\n        compile \":twitter-bootstrap:3.3.4\"\r\n        compile ':oauth:2.6.1'\r\n\r\n        // plugins needed at runtime but not for compilation\r\n        runtime \":hibernate4:4.3.8.1\" // or \":hibernate:3.6.10.18\"\r\n        runtime \":database-migration:1.4.0\"\r\n        runtime \":jquery:1.11.1\"\r\n        runtime ':twitter-bootstrap:3.3.1'\r\n        runtime ':oauth:2.6.1'\r\n\r\n    }\r\n```"},"comment":{"url":"https://api.github.com/repos/antony/grails-oauth-scribe/issues/comments/102980002","html_url":"https://github.com/antony/grails-oauth-scribe/issues/46#issuecomment-102980002","issue_url":"https://api.github.com/repos/antony/grails-oauth-scribe/issues/46","id":102980002,"user":{"login":"SaschaMoellering","id":1321549,"avatar_url":"https://avatars.githubusercontent.com/u/1321549?v=3","gravatar_id":"","url":"https://api.github.com/users/SaschaMoellering","html_url":"https://github.com/SaschaMoellering","followers_url":"https://api.github.com/users/SaschaMoellering/followers","following_url":"https://api.github.com/users/SaschaMoellering/following{/other_user}","gists_url":"https://api.github.com/users/SaschaMoellering/gists{/gist_id}","starred_url":"https://api.github.com/users/SaschaMoellering/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SaschaMoellering/subscriptions","organizations_url":"https://api.github.com/users/SaschaMoellering/orgs","repos_url":"https://api.github.com/users/SaschaMoellering/repos","events_url":"https://api.github.com/users/SaschaMoellering/events{/privacy}","received_events_url":"https://api.github.com/users/SaschaMoellering/received_events","type":"User","site_admin":false},"created_at":"2015-05-18T08:52:18Z","updated_at":"2015-05-18T08:52:18Z","body":"Hi, \r\n\r\nmy Config.groovy is:\r\n\r\n```\r\n// locations to search for config files that get merged into the main config;\r\n// config files can be ConfigSlurper scripts, Java properties files, or classes\r\n// in the classpath in ConfigSlurper format\r\n\r\n// grails.config.locations = [ \"classpath:${appName}-config.properties\",\r\n//                             \"classpath:${appName}-config.groovy\",\r\n//                             \"file:${userHome}/.grails/${appName}-config.properties\",\r\n//                             \"file:${userHome}/.grails/${appName}-config.groovy\"]\r\n\r\n// if (System.properties[\"${appName}.config.location\"]) {\r\n//    grails.config.locations << \"file:\" + System.properties[\"${appName}.config.location\"]\r\n// }\r\n\r\ngrails.project.groupId = appName // change this to alter the default package name and Maven publishing destination\r\n\r\n// The ACCEPT header will not be used for content negotiation for user agents containing the following strings (defaults to the 4 major rendering engines)\r\ngrails.mime.disable.accept.header.userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident']\r\ngrails.mime.types = [ // the first one is the default format\r\n    all:           '*/*', // 'all' maps to '*' or the first available format in withFormat\r\n    atom:          'application/atom+xml',\r\n    css:           'text/css',\r\n    csv:           'text/csv',\r\n    form:          'application/x-www-form-urlencoded',\r\n    html:          ['text/html','application/xhtml+xml'],\r\n    js:            'text/javascript',\r\n    json:          ['application/json', 'text/json'],\r\n    multipartForm: 'multipart/form-data',\r\n    rss:           'application/rss+xml',\r\n    text:          'text/plain',\r\n    hal:           ['application/hal+json','application/hal+xml'],\r\n    xml:           ['text/xml', 'application/xml']\r\n]\r\n\r\n// URL Mapping Cache Max Size, defaults to 5000\r\n//grails.urlmapping.cache.maxsize = 1000\r\n\r\n// Legacy setting for codec used to encode data with ${}\r\ngrails.views.default.codec = \"html\"\r\n\r\n// The default scope for controllers. May be prototype, session or singleton.\r\n// If unspecified, controllers are prototype scoped.\r\ngrails.controllers.defaultScope = 'singleton'\r\n\r\n// GSP settings\r\ngrails {\r\n    views {\r\n        gsp {\r\n            encoding = 'UTF-8'\r\n            htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping\r\n            codecs {\r\n                expression = 'html' // escapes values inside ${}\r\n                scriptlet = 'html' // escapes output from scriptlets in GSPs\r\n                taglib = 'none' // escapes output from taglibs\r\n                staticparts = 'none' // escapes output from static template parts\r\n            }\r\n        }\r\n        // escapes all not-encoded output at final stage of outputting\r\n        // filteringCodecForContentType.'text/html' = 'html'\r\n    }\r\n}\r\n\r\n\r\ngrails.converters.encoding = \"UTF-8\"\r\n// scaffolding templates configuration\r\ngrails.scaffolding.templates.domainSuffix = 'Instance'\r\n\r\n// Set to false to use the new Grails 1.2 JSONBuilder in the render method\r\ngrails.json.legacy.builder = false\r\n// enabled native2ascii conversion of i18n properties files\r\ngrails.enable.native2ascii = true\r\n// packages to include in Spring bean scanning\r\ngrails.spring.bean.packages = []\r\n// whether to disable processing of multi part requests\r\ngrails.web.disable.multipart=false\r\n\r\n// request parameters to mask when logging exceptions\r\ngrails.exceptionresolver.params.exclude = ['password']\r\n\r\n// configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true')\r\ngrails.hibernate.cache.queries = true\r\n\r\n// configure passing transaction's read-only attribute to Hibernate session, queries and criterias\r\n// set \"singleSession = false\" OSIV mode in hibernate configuration after enabling\r\ngrails.hibernate.pass.readonly = false\r\n// configure passing read-only to OSIV session by default, requires \"singleSession = false\" OSIV mode\r\ngrails.hibernate.osiv.readonly = false\r\n\r\noauth {\r\n    providers {\r\n        twitter {\r\n            api = TwitterApi\r\n            key = 'xxx'\r\n            secret = 'xxx'\r\n            successUri = '/oauth/twitter/success'\r\n            failureUri = '/oauth/twitter/error'\r\n        }\r\n    }\r\n}\r\n\r\nenvironments {\r\n    development {\r\n        grails.logging.jul.usebridge = true\r\n    }\r\n    production {\r\n        grails.logging.jul.usebridge = false\r\n        // TODO: grails.serverURL = \"http://www.changeme.com\"\r\n    }\r\n}\r\n\r\n// log4j configuration\r\nlog4j.main = {\r\n    // Example of changing the log pattern for the default console appender:\r\n    //\r\n    //appenders {\r\n    //    console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')\r\n    //}\r\n\r\n    error  'org.codehaus.groovy.grails.web.servlet',        // controllers\r\n           'org.codehaus.groovy.grails.web.pages',          // GSP\r\n           'org.codehaus.groovy.grails.web.sitemesh',       // layouts\r\n           'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping\r\n           'org.codehaus.groovy.grails.web.mapping',        // URL mapping\r\n           'org.codehaus.groovy.grails.commons',            // core / classloading\r\n           'org.codehaus.groovy.grails.plugins',            // plugins\r\n           'org.codehaus.groovy.grails.orm.hibernate',      // hibernate integration\r\n           'org.springframework',\r\n           'org.hibernate',\r\n           'net.sf.ehcache.hibernate'\r\n}\r\n\r\n```"}}