0

アプリを Twitter 開発者サイトに登録し、いくつかの OAuth 資格情報 (コンシューマー キー、コンシューマー シークレット、リクエスト トークン URL など) を取得しました。コールバック URL を空白のままにしました。アプリは、IOS と Android の両方で開発されています。コールバック URL アプリはありません。 IOS では動作していますが、Android では動作していません。

requestToken = twitter
                    .getOAuthRequestToken(Constants.TWITTER_CALLBACK_URL);

私は例外を得ました

02-28 10:52:27.337: W/System.err(666): 401: 認証資格情報 ( https://dev.twitter.com/pages/auth ) が欠落しているか正しくありません。有効なコンシューマ キー/シークレット、アクセス トークン/シークレットを設定し、システム クロックが同期していることを確認してください。02-28 10:52:27.337: W/System.err(666): 02-28 10:52:27.337: W/System.err(666): 02-28 10:52:27.337: W/System.err (666):
/oauth/request_token 02-28 10:52:27.337: W/System.err(666): デスクトップ アプリケーションは oauth_callback 値 'oob' のみをサポートします

次に、コールバック URL なしで試しました

requestToken = twitter
                    .getOAuthRequestToken();

そして、ログインしようとすると、(まだ Web アクティビティ内にある) ページにリダイレクトされ、アプリに Twitter アカウントへのアクセスを許可したことを祝福し、必要な場所に入力するためのピンが与えられ、アプリにリダイレクトされませんでした。

AndroidでコールバックURLなしでTwitterにログインするにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

0
  1. 独自の WebViewClient サブクラスを作成します。

2. shouldOverrideUrlLoading(WebView view, String url) メソッドをオーバーライドします。

3. shouldOverrideUrlLoading() で、url.startsWith(YOUR_CALLBACK_URL) が true かどうかを確認します。

4. true の場合、URL から「oauth_verifier」パラメーターを取得し、true を返します (shouldOverrideUrlLoading() から true を指定すると、WebView インスタンスが URL をロードできなくなります)。

手順 4 で取得したパラメーターの値を使用してアクセス トークンを取得します。手順 4 の後で、アプリケーションは WebView インスタンスから制御を取り戻すことができます。

上記の手順が面倒に聞こえる場合は、TwitterOAuthView を試してください。その使用法は非常に簡単です。電話するだけ

view.start(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL, true, リスナー); 以下のように定義された TwitterOAuthView.Listener インターフェイスを介して結果を受け取ります。

void onSuccess(TwitterOAuthView ビュー、AccessToken accessToken); void onFailure(TwitterOAuthView ビュー, TwitterOAuthView.Result 結果); TwitterOAuthView.start() メソッドに第四引数に true を指定すると、TwitterOAuthView はコールバック URL にアクセスしないので、この動作を実装してほしいと思います。ソース コード TwitterOAuthView.java が役立つ場合があります。

于 2013-02-28T06:05:37.590 に答える