0

Scribeを使用して写真をアップロードしようとしていますが、エラーが発生しても機能しないようです。

Authentication challenged received is null

そして、これを修正する方法に関するドキュメントが不足しているため、私にはわかりません。

関連するコードは次のとおりです。

try{
        OAuthRequest r = new OAuthRequest(Verb.POST, url);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        toSend.writeTo(out);
        r.addPayload(out.toByteArray());
        r.addHeader(toSend.getContentType().getName(), toSend.getContentType().getValue());

        OAuth10aServiceImpl oauth = (OAuth10aServiceImpl)oauthImpl;
        OAuthRequest sr = new OAuthRequest(Verb.GET, serviceProvider);
        sr.addOAuthParameter(OAuthConstants.TOKEN, oauthToken.getToken());
        sr.addOAuthParameter(OAuthConstants.REALM,"http://api.twitter.com/");
        oauth.addOAuthParams(sr, client._oauthToken);

        r.addHeader("X-Auth-Service-Provider",serviceProvider);
        String oauthHeader = oauth.api.getHeaderExtractor().extract(sr);
        r.addHeader("X-Verify-Credentials-Authorization", oauthHeader);

        System.out.println(r.getHeaders().get("X-Verify-Credentials-Authorization"));

        return r.send();
    }catch(Exception e){
        e.printStackTrace();
        return null;
    }

署名に追加されていないように見えるので、コンシューマーキーを使用したものだと思いますが、実際に何が起こっているのかよくわかりません:/

どんな助けでもいただければ幸いです

4

1 に答える 1

1

修理済み。コードは次のとおりです。

        OAuthRequest r = new OAuthRequest(Verb.POST, url);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        toSend.writeTo(out);
        r.addPayload(out.toByteArray());
        r.addHeader(toSend.getContentType().getName(), toSend.getContentType().getValue());

        OAuth10aServiceImpl oauth = (OAuth10aServiceImpl)client._oauth;
        OAuthRequest sr = new OAuthRequest(Verb.GET, serviceProvider);
        oauth.signRequest(client._oauthToken, sr);

        r.addHeader("X-Auth-Service-Provider",serviceProvider);
        String oauthHeader = sr.getHeaders().get("Authorization");
        r.addHeader("X-Verify-Credentials-Authorization", oauthHeader);

これがどのように機能するかを知りたい人のために、toSendHttpEntityファイルと他のStringBody部分を含みclient._oauthTokenTokenオブジェクトです。rtwitpicへの私のリクエストでserviceProviderあり、Twitter APIの検証資格情報URL(yfrogなどの一部のサービスで変更されます)

于 2012-07-31T19:33:41.703 に答える