Android:使用Twitter登录/通过Twitter本地分享App导航到Twitter主屏幕而不是登录屏幕[不一致]

时间:2017-09-13 10:25:21

标签: android twitter twitter-fabric twitter-share

我们有一个应用程序支持使用有效的电子邮件ID以及使用Twitter进行正常登录。我们正在使用我们的应用程序支持发布推文。

在发布推文之前,我正在检查Twitter会话。如果没有活动会话,我通过调用TwitterAuthClient.authorize()方法导航用户到Twitter登录屏幕。授权用户能够看到Tweet作曲家框,用户可以在其中撰写和发布推文。流程在大多数时间都正常工作。但有时Twitter SDK正在打开Twitter主屏幕https://drive.google.com/file/d/0Bz670htOa0h6X1NPajNLSS1YVzNvN2F1VWh2WEhzR0N0YTc0/view?usp=sharing 而不是https://drive.google.com/file/d/0Bz670htOa0h6U0xLT0hxcUUyYVUtVXVfV1RTSTNEWFo3LThF/view?usp=sharing屏幕。 因此,登录后回调不会回到我的应用程序。所以,我无法发推文。

注意:Twitter应用程序已安装在我的设备中,并且没有活动的Twitter会话。

代码:

private void postViaTwitter() {
  if (Twitter.getSessionManager().getActiveSession() != null ||
    !(Utils.isAppPresent(AppConstant.TWITTER_PACKAGE_NAME, this))) {
URL url = null;
try {
    url = new URL(UrlUtils.APP_URL);

    TweetComposer.Builder tweetComposer = new TweetComposer.Builder(this)
            .text(getString(R.string.share_content_description))
            .url(url);
    tweetComposer.show();

} catch (MalformedURLException e) {
    Log.e("Exception", e.getMessage(), e);
}
} else {
 loginAndShareUsingTwitter();
   }
}

private void loginAndShareUsingTwitter() {
TwitterAuthClient client = new TwitterAuthClient();
    client.authorize(this, new com.twitter.sdk.android.core.Callback<TwitterSession>() {
    @Override
    public void success(Result<TwitterSession> result) {
        if (result != null) {
            TwitterSession session = result.data;
            if (session != null) {
                postViaTwitter();
            }
        }
    }

    @Override
    public void failure(TwitterException exception) {
    }
});

}

0 个答案:

没有答案