android新浪微博登录获取用户信息
2017-04-11 15:19
357 查看
第一步:准备工作
在新浪微博开发者平台http://open.weibo.com/apps/注册并上传应用各种信息(比较多)获取到appkey,关于签名信息最好使用新浪提供的工具省心些,默认的授权回调页https://api.weibo.com/oauth2/default.html要与代码中一致。第二步:下载新浪SDK添加到工程lib
repositories { flatDir { dirs 'libs' } } compile(name: 'openDefault-1.0.0', ext: 'aar')
第三步:在AndroidManifest.xml文件中添加activity
<!--微博--> <activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:configChanges="keyboardHidden|orientation" android:exported="false" android:windowSoftInputMode="adjustResize"></activity>
第四步:代码
public class LoginActivity extends BaseActivity { private static final String SINA_WB_APPKEY = "513793262"; public static final String REDIRECT_URL = "https://api.weibo.com/oauth2/default.html";//默认REDIRECT_URL private AuthInfo mAuthInfo; private SsoHandler mSsoHandler; private String userId = ""; private String name = ""; private String imgUrl = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); mAuthInfo = new AuthInfo(this, SINA_WB_APPKEY, REDIRECT_URL, null); } @OnClick({R.id.weibo}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.weibo: mSsoHandler = new SsoHandler(this, mAuthInfo); mSsoHandler.authorize(new MyWeiboAuthListener()); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (mSsoHandler != null) { mSsoHandler.authorizeCallBack(requestCode, resultCode, data); } } class MyWeiboAuthListener implements WeiboAuthListener { @Override public void onComplete(Bundle values) { Oauth2AccessToken mAccessToken = Oauth2AccessToken.parseAccessToken(values); BleLog.e(mAccessToken.toString()); if (mAccessToken.isSessionValid()) { Map<String,String> pramas = new HashMap<>(); pramas.put("access_token", mAccessToken.getToken()); pramas.put("uid", mAccessToken.getUid()); HttpUtil.get(mContext, "https://api.weibo.com/2/users/show.json", pramas, new MyStringCallback() { @Override public void onError(Call call, Exception e, int id) { } @Override public void onResponse(String response, int id) { BleLog.e(response); JSONTokener jsonParser = new JSONTokener(response); try { JSONObject person = (JSONObject) jsonParser.nextValue(); name = person.getString("name"); userId = person.getString("id"); imgUrl =person.getString("profile_image_url"); } catch (JSONException e) { e.printStackTrace(); } } }); } else { // 应用程序签名不正确时,就会收到 Code,请确保签名正确 BleLog.e(values.getString("code", "")); } } @Override public void onCancel() { } @Override public void onWeiboException(WeiboException e) { } }
相关文章推荐
- Android——第三方登录——新浪微博——获取用户信息——账户绑定
- 【Android实战】实现新浪微博第三方登录获取用户信息
- Android授权登录新浪微博获取用户个人信息
- Android 微信授权登录、获取Wx用户信息,解决无法回调问题
- Android之QQ授权登录获取用户信息
- 解决 {"ret":100030,"msg":"this api without user authorization"} android QQ第三发登录成功后获取用户信息失败的问题
- 在为应用集成微博第三方登录获取用户信息的时候出现异常com.weibo.sdk.android.WeiboException: {"error":"User does not exists!","er
- Android之QQ授权登录获取用户信息
- Android 新浪微博获取用户信息
- Android实现新浪微博和QQ登陆并获取用户的信息
- Android 微信登录昵称乱码问题,及获取微信用户信息
- 实现新浪微博第三方登录获取用户信息
- Android之QQ授权登录获取用户信息
- Android集成原生微信授权获取用户信息登录
- Android Twitter第三方登录&获取用户信息
- Android之QQ授权登录获取用户信息
- androidQQ登录获取用户信息
- Android第三方QQ登录并获取QQ用户信息
- Android之QQ授权登录获取用户信息
- ABAP获取用户登录详细信息并已邮件附件的形式发送给你