2013-10-02 2 views
0

Я хочу подключиться к Google календарю, контактам Google и Google+ в своем приложении grails. Я могу одновременно подключить только одну услугу google с доступным поставщиком google. Поэтому я должен добавить нового настраиваемого поставщика.Плагин Grails OAuth Как создать нового настраиваемого поставщика

Мой код

package org.scribe.api; 
import org.scribe.builder.api.DefaultApi10a; 
import org.scribe.model.*; 


public class GoogleContactApi extends DefaultApi10a 
{ 
private static final String AUTHORIZATION_URL = "https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=%s"; 

@Override 
public String getAccessTokenEndpoint() 
{ 
    return "https://www.google.com/accounts/OAuthGetAccessToken"; 
} 

@Override 
public String getRequestTokenEndpoint() 
{ 
    return "https://www.google.com/accounts/OAuthGetRequestToken"; 
} 


@Override 
public String getAuthorizationUrl(Token requestToken) 
{ 
    return String.format(AUTHORIZATION_URL, requestToken.getToken()); 
} 
} 

моя конфигурация

googleContact{ 
     api = org.scribe.builder.api.GoogleApi   

     key = '1xxxxxxxx' 
     secret = 'xxxxxxxxxx' 

     scope = 'https://www.google.com/m8/feeds' 
     callback = "${grails.serverURL}/oauth/google/callback" 
     successUri = "${grails.serverURL}/oauthCallBack/googleContact" 
    } 

Но я получаю ошибку Неизвестный поставщика googleContact, проверьте конфигурацию ..

Просьба предоставить рекомендации.

ответ

1

Не нужно создавать пользовательские, чтобы подключать Google к различным приложениям Google.

Просто нужно дать другое имя поставщика в коде, например,

Config.groovy

google { 
    api = org.scribe.builder.api.GoogleApi 
    key = 'XXX' 
    secret = 'YYY' 

    scope = 'https://www.googleapis.com/auth/userinfo.profile' 

    callback = "${grails.serverURL}/oauth/google/callback" 
    successUri = "${grails.serverURL}/oauthCallBack/google" 
} 

googlecontact { 
    api = org.scribe.builder.api.GoogleApi 
    key = 'XXX' 
    secret = 'YYY' 

    scope = 'https://www.googleapis.com/auth/calendar'    

    callback = "${grails.serverURL}/oauth/googlecontact/callback" 
    successUri = "${grails.serverURL}/oauthCallBack/googlecontact" 
} 

Посмотреть

<oauth:connect provider="googlecontact">Google Contact</oauth:connect> 
<oauth:connect provider="google">Google</oauth:connect> 

и OauthCallBackController

def google() { 
    // your code 
} 

def googlecontact(){ 
    // your code 
} 

Примечание: использование googlecontact если вы используете googleContact, то вы получили сообщение об ошибке.

Смежные вопросы