java - how to get meetup access token on android, via oauth 2 -


my app needs user's meetup id. meetup uses oauth 2.0. found different pieces of code across web, paste in stackoverflow answer question, next person.

-- stackoverflow says "this question body not meet our quality standards..." paste piece of code below, in answer, can ignored.

in mainactivity, capture results form auth activity. mainactivity:

@override     protected void onactivityresult(int requestcode, int resultcode, intent data)     {         // if(requestcode == 1 && resultcode == result_ok)         if(requestcode == get_meetup_access_token_activity)         {             accesstoken = data.getextras().getstring("access_token");             savemeetupaccesstokentosharedpreferences();              //save meetupid plus device id parse             getmymeetupidfrommeetupserver();              // log.i(debug_tag,"mainactivity, accesstoken" + accesstoken);         }     } 

import library via graddle build file:

dependencies {     compile 'net.smartam.leeloo:oauth2-common:0.1'     compile 'net.smartam.leeloo:oauth2-client:0.1' } 

create class meetup authenticating. class written adrianmaurer (https://gist.github.com/adrianmaurer/4673944), thank adrianmaurer!

meetupauthactivity:

package pixtas.com.nightout;  import android.content.contentvalues; import android.content.context; import android.net.uri; import android.os.asynctask; import android.util.log; import android.view.window; import android.webkit.webview; import android.webkit.webviewclient; import android.widget.toast;  // leeloo oauth lib https://bitbucket.org/smartproject/oauth-2.0/wiki/home import net.smartam.leeloo.client.oauthclient; import net.smartam.leeloo.client.urlconnectionclient; import net.smartam.leeloo.client.request.oauthclientrequest; import net.smartam.leeloo.client.response.oauthaccesstokenresponse; import net.smartam.leeloo.client.response.oauthauthzresponse; import net.smartam.leeloo.common.exception.oauthproblemexception; import net.smartam.leeloo.common.exception.oauthsystemexception; import net.smartam.leeloo.common.message.types.granttype;  import android.app.activity; import android.content.intent; import android.os.bundle;  /**  * created tmr_byronmac on 4/24/15.  */ public class meetupauthactivity  extends activity {     private final string tag = getclass().getname();      // meetup oauth endpoints     public static final string auth_url = "https://secure.meetup.com/oauth2/authorize";     public static final string token_url = "https://secure.meetup.com/oauth2/access";      //     consumer     //public static final string redirect_uri_scheme = "oauthresponse";     //public static final string redirect_uri_host = "com.yourpackage.app";     //public static final string redirect_uri_host_app = "yourapp";     //public static final string redirect_uri = redirect_uri_scheme + "://" + redirect_uri_host + "/";     public static final string redirect_uri = "nightout://meetup.com";     public static final string consumer_key = "your_key";     public static final string consumer_secret = "your_secret";      private webview _webview;     private intent _intent;     private context _context;      public void oncreate(bundle savedinstancestate) {         this.requestwindowfeature(window.feature_no_title);         super.oncreate(savedinstancestate);          _intent = getintent();         _context = getapplicationcontext();          _webview = new webview(this);         _webview.setwebviewclient(new mywebviewclient());         setcontentview(_webview);          _webview.getsettings().setjavascriptenabled(true);         oauthclientrequest request = null;         try {             request = oauthclientrequest.authorizationlocation(                     auth_url).setclientid(                     consumer_key).setredirecturi(                     redirect_uri).buildquerymessage();         } catch (oauthsystemexception e) {             log.d(tag, "oauth request failed", e);         }         _webview.loadurl(request.getlocationuri() + "&response_type=code&set_mobile=on");     }      public void finishactivity() {         //do here before finishing if needed         finish();     }      private class mywebviewclient extends webviewclient {         @override         public boolean shouldoverrideurlloading(webview view, string url) {             uri uri = uri.parse(url);              string code = uri.getqueryparameter("code");             string error = uri.getqueryparameter("error");              if (code != null) {                 new meetupretrieveaccesstokentask().execute(uri);                  // setresult(result_ok, _intent);                 // finishactivity();             } else if (error != null) {                 setresult(result_canceled, _intent);                 finishactivity();             }             return false;         }     }      private class meetupretrieveaccesstokentask extends asynctask<uri, void, void> {          @override         protected void doinbackground(uri... params) {              uri uri = params[0];             string code = uri.getqueryparameter("code");              oauthclientrequest request = null;              try {                 request = oauthclientrequest.tokenlocation(token_url)                         .setgranttype(granttype.authorization_code).setclientid(                                 consumer_key).setclientsecret(                                 consumer_secret).setredirecturi(                                 redirect_uri).setcode(code)                         .buildbodymessage();                  oauthclient oauthclient = new oauthclient(new urlconnectionclient());                  oauthaccesstokenresponse response = oauthclient.accesstoken(request);                  // these add them _intent                 // intent returnintent = new intent();                 // returnintent.putextra("access_token", response.getaccesstoken());                 // setresult(result_ok,returnintent);                   log.d(tag, "access token: " + response.getaccesstoken());                 log.d(tag, response.getexpiresin());                 log.d(tag, response.getrefreshtoken());                  _intent.putextra("access_token", response.getaccesstoken());                 setresult(result_ok, _intent);                 finish();             } catch (oauthsystemexception e) {                 log.e(tag, "oauth system exception - couldn't access token: " + e.tostring());                 toast.maketext(_context, "oauth system exception - couldn't access token: " + e.tostring(), toast.length_long).show();             } catch (oauthproblemexception e) {                 log.e(tag, "oauth problem exception - couldn't access token");                 toast.maketext(_context, "oauth problem exception - couldn't access token", toast.length_long).show();             }             return null;         }     }      @override     public void onbackpressed()     {         setresult(result_canceled, _intent);         finishactivity();     } } 

call meetupauthactivity main activity. mainactivity:

public void getmeetupaccesstoken(){     intent intent;     intent = new intent(this, meetupauthactivity.class);     // startactivity(intent);     startactivityforresult(intent,get_meetup_access_token_activity); } 

in mainactivity, capture results form auth activity. mainactivity:

@override     protected void onactivityresult(int requestcode, int resultcode, intent data)     {         // if(requestcode == 1 && resultcode == result_ok)         if(requestcode == get_meetup_access_token_activity)         {             accesstoken = data.getextras().getstring("access_token");             savemeetupaccesstokentosharedpreferences();              //save meetupid plus device id parse             getmymeetupidfrommeetupserver();              // log.i(debug_tag,"mainactivity, accesstoken" + accesstoken);         }     }