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 に制限はありますか?
ありがとう。