gpt4 book ai didi

Grails grails-oauth-scribe linkedin 重定向

转载 作者:行者123 更新时间:2023-12-02 02:10:57 31 4
gpt4 key购买 nike

我正在尝试使用新的 Grails oAuth 2.0 插件来使用 LinkedIn 资源。使用我的代码,我可以访问 LinkedIn 授权页面,在其中我可以授予我的应用程序访问我的 LinkedIn 帐户信息的权限。

问题是,一旦我点击继续按钮,它就不会重定向回我的应用程序。相反,它会转到一个页面,显示“您已成功授权 XXXX。请返回您的应用程序并输入以下安全代码以授予访问权限:某个号码”

如何让它重定向回我的应用程序?

我的设置是:

Config.groovy

oauth {
providers{
linkedin {
api="org.scribe.builder.api.LinkedInApi"
key = 'my key'
secret = 'my secret'
successUri = '/linkedinProfile/success'
failureUri = '/linkedinProfile/failed'
callback = "http://localhost:8080/myApp/secure/linkedinProfile/success"
}
}
}

我的 gsp View :

<oauth:connect provider="linkedin">Connect to linkedin</oauth:connect>

我在开发者帐户中的链接:

网站 URL:http://localhost:8080/myAppOAuth 重定向 URL:http://localhost:8080/myApp/secure/linkedinProfile/success

最佳答案

好吧,如果其他人需要这个,这就是我所做的:

我有三个文件, View 、开始 Controller 和结束 Controller 。

在 View 上,我有一个像这样的链接:

  <g:link action="registerOnLinkedIn" controller="linkedinProfile" >connect </g:link>

我有这个方法:

        String apiKey =:myKey"
String apiSecret="mySecret"
String callBackUrl="http://localhost:8080/myApp/secure/mySub/success"

def registerOnLinkedIn = {

Token linkedInAccessToken=null;
OAuthService service=new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.callback(callBackUrl)
.build();

Token requestToken = service.getRequestToken();
String authUrl = service.getAuthorizationUrl(requestToken);
session['REQUEST_TOKEN'] = requestToken
redirect(url: authUrl)
}
def success ={
String v = params.oauth_verifier
String r= session['REQUEST_TOKEN']

linkedInXmlService.getXmlStream(v,session['REQUEST_TOKEN'])

}

当用户单击链接时,他们会被发送到该方法,该方法会创建一个重定向 URL。重定向url是linkedIn的授权页面,用户可以在其中接受应用程序。一旦接受,它们将被重定向到 success 方法,该方法会重定向到服务。

服务获取验证者和 token 并向 linkedin API 发送请求。大部分内容在这里:

    def apiUrl = "http://api.linkedin.com/v1/people/~:(" +
"id," +
"picture-url," +
"site-standard-profile-request," +
"first-name," +
"date-of-birth," +
"last-name," +
"industry," +
"location," +
"educations," +
"positions:(id,title,summary,start-date,end-date,is-current,company)," +
"skills:(id,skill:(name),proficiency:(level),years:(name))," +
"connections:(id,industry,first-name,last-name,site-standard-profile-request,headline,location,positions,educations,date-of-birth,picture-url,skills:(id,skill:(name),proficiency:(level),years:(name)))" +
")"


public void getXmlStream(String ver, rt)
{
String accessTokenKey=""
String accessTokenSecret=""

String xmlString =""
OAuthService service=new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.build();

Verifier v = new Verifier(ver);

Token accessToken = service.getAccessToken(rt, v);
accessTokenSecret = accessToken.secret
accessTokenKey = accessToken.token


OAuthRequest request = new OAuthRequest(Verb.GET, apiUrl);
service.signRequest(accessToken, request); // the access token from step 4
Response response = request.send();
xmlString=response.getBody();
log.debug (xmlString)
processData(xmlString, accessTokenKey, accessTokenSecret)

}

关于Grails grails-oauth-scribe linkedin 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12441533/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com