2

我正在尝试使用 scribe oAuth 插件(在 grails 环境中)。我能够让用户授权我的应用程序并进行身份验证。然后我可以得到 xml 响应。不过,我的问题是如何重新查询用户个人资料,而不必让他们重新授权我的应用程序。一旦他们第一次授权,我就会捕获他们的令牌和密钥。那么,我是否应该能够重新查询个人资料(只要他们不撤销授权。)?我可以使用旧版本的插件来做到这一点。问题在于创建新令牌。如果没有验证者和请求令牌,我看不到创建授权令牌的方法(这不会存在,因为我的代码在他们的许可下代表他们执行查询。)

如果我尝试像这样创建令牌:

Token accessToken = new Token()
accessToken.secret="XXX"
accessToken.token = "YYY"

我收到初始化错误。

我不能这样创建它,因为我没有请求令牌和验证器:

Token accessToken = service.getAccessToken(requestToken, verifier);
accessTokenSecret = accessToken.secret
accessTokenKey = accessToken.token

如果我没有访问令牌对象,我将无法签署我的请求。完整的代码如下所示(假设它们是请求令牌和验证器)

  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);
    Response response = request.send();
    xmlString=response.getBody();   

感谢您的帮助杰森

4

1 回答 1

6

好吧,过了一段时间,我得到了这个工作:

  public getProfileWithTokens(getAccessToken, getAccessTokenSecret){

    Token newAccessToken = new Token(getAccessToken, getAccessTokenSecret);

    String xmlString =""

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

    OAuthRequest request = new OAuthRequest(Verb.GET, apiUrl);
    service.signRequest(newAccessToken, request);
    Response response = request.send();
    xmlString=response.getBody();           

}
于 2012-10-08T21:48:41.953 回答