2013-06-25 34 views
0

我試圖從this鏈接運行socialauth grails演示。爲此,我在developer.facebook.com網站上註冊了域名爲http://localhost:8080/appname的應用程序。登錄部分是成功的。不幸的是我無法註銷。這裏是我的 SocialAuthController:無法使用socialauth java api註銷facebook facebook

package org.brickred 

import org.brickred.socialauth.SocialAuthManager 
import org.codehaus.groovy.grails.web.pages.ext.jsp.GroovyPagesPageContext 

import de.deltatree.social.web.filter.api.SASFHelper 
import de.deltatree.social.web.filter.api.SASFStaticHelper 

class SocialAuthController { 

def index = { 
    println "id:::"+params.id; 
    redirect(uri: "/SAF/SocialAuth?id=${params.id}") 
} 

def signout = { 
    SASFHelper helper = SASFStaticHelper.getHelper(request) 
    SocialAuthManager socialAuthManager 
    if(helper!=null){ 
     socialAuthManager = helper.getAuthManager() 
     if(socialAuthManager != null){ 
      socialAuthManager.disconnectProvider(params.id) 
     }else{ 
      flash.message = "Unable to logout from "+params.id 
     } 
    }else{ 
     flash.message = "Unable to logout from "+params.id 
    } 
    redirect(uri: "/index.gsp") 
} 
} 

如上面給出這是一樣的演示鏈接。當我從STS IDE調試它,在該行:

socialAuthManager.disconnectProvider(params.id) 

返回FALSE。

由於每javadoc它說:

/** 
    * It disconnects with provider 
    * 
    * @param id 
    *   the provider id 
    * @return True if provider is disconnected or false if not. 
    */ 
    public boolean disconnectProvider(final String id) { 
      if (providersMap.get(id) != null) { 
        AuthProvider p = providersMap.get(id); 
        p.logout(); 
        providersMap.remove(id); 
        return true; 
      } 
      return false; 

    } 

坦白說,該API具有良好的功能,但它缺乏一個強大的集教程/在線resources.So任何人都可以猜到是怎麼回事的用我的代碼?
此外,如果有人知道有關api的更多資源,除了code.google.com中提供的資源外,請在此處提及。

回答