Note that there are some explanatory texts on larger screens.

plurals
  1. POGetting 401 when requesting access token with signpost within android
    primarykey
    data
    text
    <p>Here is my code, i keep getting an exception "Authorization failed (server replied with a 401). This can happen if the consumer key was not correct or the signatures did not match." on this line 'provider.retrieveAccessToken(consumer, verifier);'. I have triple checked my consumer key and secret and my twitter application is set as a Browser and tried setting provider.setOAuth10a(true), i have been struggling on this for 2 days!! I am using signpost 1.2.1.1 (core &amp; commonshttp4), If anyone can help! Please im desperate</p> <pre><code> private static final String CONSUMER_KEY = "MY_CONSUMER_KEY"; private static final String CONSUMER_SECRET = "MY_CONSUMER_SECRET"; private static final String CALLBACK_URL = "tweet-mapper://mainactivity"; private static final String REQUEST_URL = "https://api.twitter.com/oauth/request_token"; private static final String ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token"; private static final String AUTH_URL = "https://api.twitter.com/oauth/authorize"; private static final String PREFERENCE_FILE = "twitter_oauth.prefs"; private static CommonsHttpOAuthConsumer consumer; private static CommonsHttpOAuthProvider provider; private static String ACCESS_KEY; private static String ACCESS_SECRET; private Twitter twitter; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); loginViaOAuth(); } private void loginViaOAuth() { try { consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); provider.setOAuth10a(true); provider = new CommonsHttpOAuthProvider(REQUEST_URL, ACCESS_TOKEN_URL, AUTH_URL); String authURL = provider.retrieveRequestToken(consumer, CALLBACK_URL); this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authURL))); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); } } @Override protected void onResume() { super.onResume(); Uri uri = this.getIntent().getData(); if (uri != null &amp;&amp; uri.toString().startsWith(CALLBACK_URL)) { String verifier = uri.getQueryParameter(OAuth.OAUTH_VERIFIER); Log.d("verifier:", verifier); try { provider.setOAuth10a(true); provider.retrieveAccessToken(consumer, verifier); ACCESS_KEY = consumer.getToken(); ACCESS_SECRET = consumer.getTokenSecret(); AccessToken a = new AccessToken(ACCESS_KEY, ACCESS_SECRET); // initialize Twitter4J twitter = new Twitter(); twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); twitter.setOAuthAccessToken(a); String tweet = "#OAuth working via android app!"; twitter.updateStatus(tweet); Toast.makeText(this, tweet, Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload