2012-08-15 73 views
1

使用通过Railo CFML EngineSocialAuth: v2.3,我得到以下异常抛出:SocialAuth为什么说“Facebook不是提供商或有效的OpenId URL”?

Railo 3.3.4.003 Error (org.brickred.socialauth.exception.SocialAuthException) 
Message  facebook is not a provider or valid OpenId URL 
Cause org.brickred.socialauth.exception.SocialAuthException 
Stacktrace The Error Occurred in 
/Users/rountrjf/Sites/ccpd-dev/controllers/socialauth.cfc: line 31 

    29: manager.setSocialAuthConfig(config); 
    30: successUrl = "http://dev.ccpd.uc.edu/socialauth/success"; 
    31: providerUrl = manager.getAuthenticationUrl("facebook", successUrl); 

这里是我的CFC代码片段:

public string function login() { 
    id = params.key; 
    configFile = expandPath("/SocialAuth/oauth_config.properties"); 
    inputFile = createObject("java","java.io.File").init(configFile); 
    inputStream = createObject("java", "java.io.FileInputStream").init(inputFile); 

    SocialAuthConfig = createObject("java","org.brickred.socialauth.SocialAuthConfig").init(); 
    config = SocialAuthConfig.getDefault(); 
    config.load(configFile); 

    SocialAuthManager = createObject("java","org.brickred.socialauth.SocialAuthManager").init(); 
    manager = SocialAuthManager; 
    manager.setSocialAuthConfig(config); 
    successUrl = "http://dev.ccpd.uc.edu/socialauth/success"; 
    providerUrl = manager.getAuthenticationUrl("facebook", successUrl); 

为什么抛出这个错误? “configFile”有一个“facebook”属性,它的配置如step 3 of the "Getting Started" guide所示。

CONFIG文件我正在使用

#google 
www.google.com.consumer_key = opensource.brickred.com 
www.google.com.consumer_secret = YC06FqhmCLWvtBg/O4W/aJfj 
#you can set custom permission by using custom_permissions with provider prefix. 
#www.google.com.custom_permissions = http://www.google.com/m8/feeds/,http://picasaweb.google.com/data/ 

#yahoo 
api.login.yahoo.com.consumer_key = dj0yJmk9VTdaSUVTU3RrWlRzJmQ9WVdrOWNtSjZNMFpITm1VbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD1iMA-- 
api.login.yahoo.com.consumer_secret = 1db3d0b897dac60e151aa9e2499fcb2a6b474546 

#twitter 
twitter.com.consumer_key = E3hm7J9IQbWLijpiQG7W8Q 
twitter.com.consumer_secret = SGKNuXyybt0iDdgsuzVbFHOaemV7V6pr0wKwbaT2MH0 

#facebook 
graph.facebook.com.consumer_key =  152190004803645 
graph.facebook.com.consumer_secret = 64c94bd02180b0ade85889b44b2ba7c4 
#you can set custom permission by using custom_permissions with provider prefix. 
#graph.facebook.com.custom_permission = publish_stream,email,user_birthday,user_location,offline_access 

#hotmail 
consent.live.com.consumer_key = 000000004403D60E 
consent.live.com.consumer_secret = cYqlii67pTvgPD4pdB7NUVC7L4MIHCcs 

#AOL 
api.screenname.aol.com.consumer_key = ab1QxoYXlT-x-ARL 
api.screenname.aol.com.consumer_secret = 000 

#LinkedIn 
api.linkedin.com.consumer_key = 9-mmqg28fpMocVuAg87exH-RXKs70yms52GSFIqkZN25S3m96kdPGBbuSxdSBIyL 
api.linkedin.com.consumer_secret = e6NBqhDYE1fX17RwYGW5vMp25Cvh7Sbw9t-zMYTIW_T5LytY5OwJ12snh_YftgE4 

#MySpace 
api.myspace.com.consumer_key = 29db395f5ee8426bb90b1db65c91c956 
api.myspace.com.consumer_secret = 0fdccc829c474e42867e16b68cda37a4c4b7b08eda574fe6a959943e3e9be709 

#FourSquare 
foursquare.com.consumer_key = JQKEM1PHWFW4YF2YPEQBRRESXE3SBGNCYJWWDTZKF3IZNJ3V 
foursquare.com.consumer_secret = 4IILLDFDVPP2LC554S4KXKETQNTDKPDSEVCKVHA2QEHKYBEQ 

#Yammer 
www.yammer.com.consumer_key=5zyIkp12TrkulSRbSegQ 
www.yammer.com.consumer_secret=zUcCB9kqWhI1IiTAJbl9QdG2AWcUJMDWp3Qyv5VJJw 

#Mendeley 
api.mendeley.com.consumer_key=f31077a7576d5e02537e232eb649403c04fce1dd0 
api.mendeley.com.consumer_secret=1810bc92d4625f673e4ff35cb248aab3 

#Salesforce 
login.salesforce.com.consumer_key = 3MVG9Y6d_Btp4xp4yFMR0tPSndkAVu4OBejuYcL2iGFC68tA49PknWKX20XdPl5s1iwWldyuAbSINWHbB2Jcu 
login.salesforce.com.consumer_secret = 1993703471433041656 
+2

我不知道SocialAuth什么,但错误信息_“Facebook是不是提供商或有效的OpenID URL” _似​​乎是相当明确的,那么什么是你的问题? – 2012-08-15 17:22:16

+0

好的,对不起 - 我在底部添加了我的问题。 – 2012-08-15 19:02:08

+0

它是_“应该”_配置为向导显示,还是***配置为***显示?如果您指定相关的URL,会发生什么情况? – 2012-08-15 19:28:17

回答

2

我会用Constants.FACEBOOK这实际上是“脸谱”,但在情况下,建议不要它应该工作的值。

出现错误的可能原因是您没有使用正确的输入文件。

确保配置config装入正确, 尝试调用config.getProviderConfig(Constants.FACEBOOK),看看它是否返回null

最后你可以试试这个。这是我使用和工作。

SocialAuthConfig config = new SocialAuthConfig(); 
SocialAuthManager socialAuthManager = new SocialAuthManager(); 

config.load(inputStream); 
socialAuthManager.setSocialAuthConfig(config); 

我真的不知道Railo CFML引擎,它做了什么,所以我忍不住。 也许从config = SocialAuthConfig.getDefault();删除.getDefault()

+0

你的答案是可以接受的。谢谢。 – 2013-04-01 12:24:47

+0

你解决了这个问题吗?我编辑了一些答案,使其更加清晰。感谢您的接受 – 2013-04-01 13:24:09