2

(grails 環境で) scribe oAuth プラグインを使用しようとしています。ユーザーにアプリを承認して認証してもらうことができます。その後、xml 応答を取得できます。ただし、私の質問は、アプリを再承認することなく、ユーザー プロファイルを再クエリするにはどうすればよいかということです。彼らが初めてそれを承認したら、トークンと秘密鍵を取得します。では、プロファイルを再クエリすることはできませんか (承認を取り消さない限り)。古いバージョンのプラグインでこれを行うことができました。問題は、新しいトークンの作成にあります。Verifier と Request Token なしで Authorization トークンを作成する方法がわかりません (私のコードが彼らの許可を得て彼らに代わってクエリを実行しているため、これらは存在しません)。

次のようにトークンを作成しようとすると:

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 に答える