0

私は OAuth を初めて使用し、それを必要とする Android アプリを開発しており、道しるべライブラリを使用しています。

を使用してトークンを取得できるようになるまで、すべてが機能していると思います

String token = uri.getQueryParameter("oauth_token");

正しく返されますが、次の行

String verifier = uri.getQueryParameter("oauth_verifier");

null を返します。次のように初期化された uri をデバッグして検査しました

 Uri uri = this.getIntent().getData();

そして、キー「oauth_verifier」を持っていないようです

ベリファイアがnullであるため、次の行を試すとOAuthExpectationFailedExceptionが発生します

provider.retrieveAccessToken(consumer, verifier);

ベリファイアが null である理由を理解するのを手伝ってくれる人はいますか? OOB ではなくコールバックを使用しています。

私は他の質問で見たことがあり、応答でこのようなものを導きます:

dat=myapp://twitter?oauth_token=tJpJHOOwoTGMwdvHyYbfX2tyHKOp0Y2kdRRZf3sM&
oauth_verifier=xc49oM8eVVmK46ZSLz2RMT2uqXn3SxrMxf5ZAMXaD2Y

私のものは似ていますが、ouath_verifier キーがありません。

ここで、機能する最初のインテントを送信し、リターンを取得します

        String clientKey = "xxxxxxx";
        String clientSecret = "yyyyyyyyy";

        CommonsHttpOAuthConsumer  consumer = new CommonsHttpOAuthConsumer(clientKey,clientSecret);


        provider = new CommonsHttpOAuthProvider(URL_Request_Token,
                URL_Access_Token, 
                URL_Authorize";
        provider.setOAuth10a(true);


        try {
            String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URI.toString());

            String token = consumer.getToken(); 
            String secret = consumer.getTokenSecret();

            this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
         }

どんな助けでも大歓迎です

4

1 に答える 1

1

Twitter インタラクション サンプルの開発中に発生した問題は、Twitter アプリ コンソールからコールバック URL を設定するのを忘れていたことです。

ここに画像の説明を入力

そうしないと、アプリケーションはリダイレクトされないため、検証トークンを取得できません。

プロモモードオン

ただし、特に勇気がある方のために説明すると、私は最近このライブラリPostManLibに取り組んでおり、ベータ テスターを探しています。内部でよく知られている scribe ライブラリを使用して、すべての非同期 oauth 相互作用を処理する必要があります。

プロモモードオフ
于 2013-03-04T21:22:21.440 に答える