android新浪微博登录获取用户信息

第一步:准备工作

在新浪微博开发者平台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) {
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值