App Signon Stopped Working Again


#1

I am using the Twitter4J library. For whatever reason, the Twitter sign in has ceased working. It used to work and now it doesn’t. I cannot for the life of me figure out why.

Known: The consumer key and the consumer secret between the app and the app on twitter are correct and matched. The callback URL on Twitter is set to a dummy callback. No “oob” or whatever desktop mode. I am receiving the request token.

Issue: I get as far as the Sign In screen to authenticate my app, put in my user name and password hit enter and then nothing happens. At all. Whatsoever. No time out. No error.

Relevant manifest:

<activity
        android:name="com.******.android.socialutils.TwitterLogin"
        android:configChanges="keyboardHidden|orientation"
        android:launchMode="singleTop"
        android:exported="false">
        <intent-filter>  
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/twitterCallbackScheme" android:host="TwitterLogin" />
        </intent-filter>
    </activity>

Login steps:

mTwitter = new TwitterFactory().getInstance();

    // Tell twitter4j that we want to use it with our app
    mTwitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    new twitAsynch().execute();

and then asynch:

protected void onPreExecute() {

        mDialog.show();
    }

    @Override
    protected Void doInBackground(Void... arg0) {
        try {
            mReqToken = mTwitter.getOAuthRequestToken(CALLBACK_URL);
            }
        } catch (TwitterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute (Void result) {
        mDialog.dismiss();
        continueLogin();
    }

to the sign in page:

try {
            //mReqToken = mTwitter.getOAuthRequestToken(CALLBACK_URL);
            WebView twitterSite = new WebView(this);
            twitterSite.clearCache(false);
            twitterSite.loadUrl(mReqToken.getAuthenticationURL());
            setContentView(twitterSite);
    } catch (Exception e) {
            MmfLogger.error("Twitter.loginNewUser exception: " + e);
    }

Then dealing with the intent:

@Override
protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        //Toast.makeText(this, "Dealing with intent", Toast.LENGTH_LONG);
        dealWithTwitterResponse(intent);
}

//Twitter uri callback 
private void dealWithTwitterResponse(Intent intent) {
    Uri uri = intent.getData();
    if (uri != null && uri.toString().startsWith(CALLBACK_URL)) { // If the user has just logged in
            String oauthVerifier = uri.getQueryParameter("oauth_verifier");
            authoriseNewUser(oauthVerifier);
    } else {
        MmfLogger.error("TwitterLogin.dealWithTwitterResponse failure. uri: " + uri.toString());
    }
}

Again, I’m not making it to onNewIntent. And again, a week ago I did. What on Earth is wrong here?

This is the second time this has occurred. The last time this occurred I was told that my callback and this and that were wrong. They weren’t. And with NO CODE CHANGES everything started working the next day.

And here we are again. Last week it worked, today it does not. Same code that has been in the repository untouched.

Android App. I send my consumer key/secret. I get a request token. I send the request token and load the authentication URL. I get to the sign in/permissions screen. I enter my twitter name and password. Hit enter. And… nothing. Not a thing. No error. No screen change. No time out. It just sits.

Again. The consumer key and secret are unchanged. The oauth authentification code HAS NOT CHANGED. Is there something going on? An update perhaps?