2

アプリに yahoo を統合しようとしています。やっています、

private static final String YAHOO_CALLBACK_URI = "MyApp://oauth";
public static final String YAHOO_REQUEST_TOKEN_URL = "http://api.login.yahoo.com/oauth/request_token";//api.login.yahoo.com
public static final String YAHOO_ACCESS_TOKEN_URL = "http://api.login.yahoo.com/oauth/access_token";
public static final String YAHOO_AUTHORIZE_URL = "http://api.login.yahoo.com/authorize";


CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(YAHOO_CONSUMER_KEY, YAHOO_CONSUMER_SERECT_KEY);
    OAuthProvider provider = new CommonsHttpOAuthProvider(YAHOO_REQUEST_TOKEN_URL, YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTHORIZE_URL);
    provider.setOAuth10a(true);
    try {
        String authUrl = provider.retrieveRequestToken(consumer, YAHOO_CALLBACK_URI);// Can I pass Null for callback url.
        System.out.println("AuthURL = " + authUrl);
    } catch (OAuthMessageSignerException e) {
        e.printStackTrace();
    } catch (OAuthNotAuthorizedException e) {
        e.printStackTrace();
    } catch (OAuthExpectationFailedException e) {
        e.printStackTrace();
    } catch (OAuthCommunicationException e) {
        e.printStackTrace();
    }

取得

oauth.signpost.exception.OAuthCommunicationException: サービス プロバイダーとの通信に失敗しました: サービス プロバイダーがエラーで応答しました: 404 (見つかりません)

リクエスト トークンを取得できない理由。

4

2 に答える 2

3
  1. Yahoo のアプリが Web ベースとして登録されていることを確認します。Web ベースのアプリケーションとして登録する場合、選択した有効なアプリケーション URL とアプリケーション ドメイン (両方とも同じドメインである必要があります) を指定しますが、他のユーザーによって使用されていません。たとえば、私は自分が所有する Web サイトの URL を持っています。これは、コンシューマーのコールバック URL としても使用されます。
  2. 「MyApp://oauth」を呼び出す代わりに、有効な http コールバック URL (アプリの登録に使用したものと同じ) を指定します。それだけで、上記のコードは機能するはずです。
  3. 新しい Webview を開き、authUrl を呼び出します。アプリが承認されたら、「onPageStarted」メソッドをオーバーライドして、アプリケーション URL への呼び出しをインターセプトします。そこで、「MyApp://oauth」を指す新しいインテントを起動して、アプリへのコールバックを行います。

上記の手順でご不明な点がございましたら、お知らせください。喜んでお手伝いさせていただきます。

于 2011-08-21T12:55:52.400 に答える
1

私は上記の 3#poits に従い、アプリケーションへのコールバックを行うことができました。全体の問題は、YAHOO OAUTH プロセスから始まりました。現在、Yahoo はカスタム コール バック URL を取得しません。有効な http URL である必要があります。FB ダイアログと同様に、Web ビューの YAHOO Auth URL を呼び出すために使用できる CUSTOMi ダイアログ ボックスを使用するなど、いくつかの問題があり、自分で解決しています。

に感謝します

于 2011-11-10T12:29:52.033 に答える