繁体   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