1

Android アプリの oauth 認証を構築しようとしています。ZF2 と PECL OAuthProvider を使用してサーバー側を構築しましたが、今はクライアントを構築しようとしています。

Request Tokenリクエストで失敗した道標を試したので、Scribeに切り替えましたが、良くありません:

Request トークンを取得しようとすると、例外が発生します。これが私のトレースです(デバッグモード)

04-20 23:03:40.768: I/System.out(10677): obtaining request token from http://192.168.1.198:88/oauth/requesttoken
04-20 23:03:40.778: I/REQUEST(10677): http://192.168.1.198:88/oauth/requesttoken
04-20 23:03:40.778: I/System.out(10677): setting oauth_callback to oob
04-20 23:03:40.778: I/System.out(10677): generating signature...
04-20 23:03:40.838: I/System.out(10677): using base64 encoder: CommonsCodec
04-20 23:03:40.958: I/System.out(10677): base string is: POST&http%3A%2F%2F192.168.1.198%3A88%2Foauth%2Frequesttoken&oauth_callback%3Doob%26oauth_consumer_key%3D0afc84167f8f5c0134d88599c7dbdabf6e05de12%26oauth_nonce%3D345688132%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1366491820%26oauth_version%3D1.0
04-20 23:03:40.958: I/System.out(10677): signature is: O2gik5ufQISAluRS5sDyZcUy2SQ=
04-20 23:03:40.968: I/System.out(10677): appended additional OAuth parameters: { oauth_callback -> oob , oauth_signature -> O2gik5ufQISAluRS5sDyZcUy2SQ=
04-20 23:03:40.968: I/System.out(10677):  , oauth_version -> 1.0 , oauth_nonce -> 345688132 , oauth_signature_method -> HMAC-SHA1 , oauth_consumer_key -> 0afc84167f8f5c0134d88599c7dbdabf6e05de12 , oauth_timestamp -> 1366491820 }
04-20 23:03:40.968: I/System.out(10677): using Http Header signature
04-20 23:03:40.978: I/System.out(10677): sending request...
04-20 23:03:41.018: W/System.err(10677): org.scribe.exceptions.OAuthConnectionException: There was a problem while creating a connection to the remote service.
04-20 23:03:41.028: W/System.err(10677):    at org.scribe.model.Request.send(Request.java:69)
04-20 23:03:41.028: W/System.err(10677):    at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:59)

コードは次のとおりです (できるだけ単純に)。

 OAuthService service = new ServiceBuilder()
    .provider(OAuthApi.class)
    .apiKey(Const.CONSUMER_KEY)
    .apiSecret(Const.CONSUMER_SECRET)
    .debug()
    .build();

Token requestToken = service.getRequestToken();
Log.i("Token", requestToken.getToken());

私の OAuthApi は例に基づいており、単純です:

public class OAuthApi extends DefaultApi10a {

    @Override
    public String getRequestTokenEndpoint() 
    {
        Log.i("REQUEST ", Const.SERV+"oauth/requesttoken");
        return Const.SERV+"oauth/requesttoken";
    }

    @Override
    public String getAccessTokenEndpoint() 
    {
        return Const.SERV+"oauth/accesstoken";
    }

    @Override
    public String getAuthorizationUrl(Token requestToken)
    {
        return String.format(Const.SERV+"oauth/authorize?token=%s", requestToken.getToken());
    }

}

私は何を間違っていますか?Android の Scribe に制限はありますか?

ありがとう。

4

0 に答える 0