簡體   English   中英

除了onNewIntent()方法之外,我是否可以通過其他任何方式在Android應用程序中獲得Twitter API響應?

[英]Can I get Twitter API response in my Android app any other way than with onNewIntent() method?

我在Android開發方面經驗不足。 我正在開發可與Facebook,Twitter,LinkedIn和Google+通信的應用程序。

每個社交網絡都有自己的包裝器,用於處理Android應用與社交網絡之間的通信。 Facebook交流已經完成。 我在Twitter交流方面遇到問題。 我在Internet上發現的實施使用twitter4j庫和Internet瀏覽器進行日志記錄。 然后,您必須從瀏覽器讀取響應數據。

例如: Twitter測試應用程序

我的問題是從瀏覽器讀取此響應數據。 在瀏覽器中登錄和授權不會出現問題。 我上面提到的教程通常使用onNewIntent()Activity方法來處理瀏覽器響應。 但是我不能使用此方法,因為它用於不同的目的。 我不知道是否可以在沒有MainActivity之外沒有任何其他Activity的情況下執行此操作,或者我需要在包裝器中創建另一個Activity,以處理整個Twitter通信。

謝謝你的幫助。

我真的不確定為什么Internet上這么多twitter4j的示例會通過意圖和自定義方案來處理回調URL。 對於大多數情況,我都覺得很尷尬。 我也不想離開應用程序去瀏覽器登錄。

而是嘗試使用WebView加載頁面。 然后,您可以附加一個可以檢測回調URL的WebViewClient 您也不必處理更改清單等。 您可能會執行以下操作,也許是在DialogFragment onCreateView內部:

mWebView = new WebView(context);
mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onLoadResource(WebView view, String url) {
        if (url.startsWith(CALLBACK_URL)) {
            Uri uri = Uri.parse(url);
            String denied = uri.getQueryParameter("denied");
            if (denied != null) {
                // handle denied
            } else {
                // handle authenticated
            }
        }
        super.onLoadResource(view, url);
    }
});

然后你就可以在加載驗證URL onViewCreated (如果你在做這個DialogFragment ):

    Twitter twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    RequestToken reqToken = twitter.getOAuthRequestToken();
    mWebView.loadUrl(reqToken.getAuthenticationURL());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM