Grails OAuth插件如何创建新的自定义提供商
问题描述:
我想在我的grails应用程序中与Google日历,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,检查您的配置..
请提供指导。
答
无需创建自定义提供来连接谷歌与不同的谷歌应用程序。
只需要在代码中给不同的供应商的名称,例如,
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
然后你有错误。