光羽隼 2017-04-20 01:55 采纳率: 0%
浏览 1160
已结题

android新浪第三方登录,可以获得授权,获取用户信息时报异常

我们的项目未经过审核,我使用测试账号申请第三方登录,使用web网页登录可以获得授权,但是获取不了用户信息,提示exception:com.sina.weibo.sdk.exception.WeiboException: java.io.FileNotFoundException: https://api.weibo.com/2/users/show.json。使用客户端登陆根本获取不了授权。
app_secret我用的是调试包的。获取用户信息的的回调方法一直走onWeiboException

  • 写回答

3条回答 默认 最新

  • qq_28514109 2017-04-20 06:01
    关注

    public class LoginActivity extends BaseActivity implements OnClickListener {

    public static final int END_SINA = 2;  
    private RelativeLayout third_party_login_xinlang;  
    public String TAG = "LoginActivity---->";  
    public static Oauth2AccessToken accessToken;  
    private Weibo mWeibo;  
    private SsoHandler mSsoHandler;  
    private Handler handler = new Handler() {  
        @Override  
        public void handleMessage(Message msg) {  
            case END_SINA:  
                Log.v(TAG, "sina data loded!!");  
                isAlreadExist(LoginActivity.loginType);  
                break;  
            default:  
                break;  
            }  
        }  
    };  
    
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.login);  
        initViews();  
        initData();  
    }  
    
    private void initData() {// 新浪微博实例  
    
        mWeibo = Weibo.getInstance(ConstantS.APP_KEY, ConstantS.REDIRECT_URL,  
                TAG);  
    }  
    
    private void initViews() {  
        third_party_login_xinlang.setOnClickListener(this);  
    
    }  
    
    @Override  
    public void onClick(View v) {  
        switch (v.getId()) {  
        case R.id.third_party_login_xinlang:  
            isThreeLogin("1");  
            isSinaLogin();  
            break;  
        }  
    
    }  
    /** 
     * 新浪登录 
     */  
    private void isSinaLogin() {  
        mSsoHandler = new SsoHandler(this, mWeibo);  
        mSsoHandler.authorize(new AuthDialogListener(), null);  
    }  
    /** 
     * 新浪回调 
     *  
     * @author Administrator 
     *  
     */  
    private class AuthDialogListener implements WeiboAuthListener {  
    
        @Override  
        public void onCancel() {  
    
        }  
    
        @Override  
        public void onComplete(Bundle values) {  
            String token = values.getString("access_token");  
            String expires_in = values.getString("expires_in");  
            final String idstr = values.getString("uid");  
            LoginActivity.accessToken = new Oauth2AccessToken(token, expires_in);  
            if (LoginActivity.accessToken.isSessionValid()) {  
                String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")  
                        .format(new java.util.Date(accessToken.getExpiresTime()));  
                AccessTokenKeeper.keepAccessToken(LoginActivity.this,  
                        accessToken);  
            }  
            new Thread(new Runnable() {  
                @Override  
                public void run() {  
                    UserApi userApi = new UserApi(accessToken);  
                    userApi.show(idstr, new SinaRequestListener());  
                }  
            }).start();  
        }  
    
        @Override  
        public void onError(WeiboDialogError arg0) {  
    
        }  
    
        @Override  
        public void onWeiboException(WeiboException arg0) {  
    
        }  
    
    }  
    
    /** 
     * 新浪请求接口 
     *  
     * @author Administrator 
     *  
     */  
    private class SinaRequestListener implements RequestListener {  
    
        @Override  
        public void onComplete(String response) {  
            JsonUtil jsonUtil = new JsonUtil();  
            JSONObject jsonObject = jsonUtil.getJsonObject(response);  
            try {  
                Message msg = Message.obtain();  
                String idstr = jsonObject.getString("idstr");// 唯一标识符(uid)  
                String name = jsonObject.getString("name");// 姓名  
                String avatar_hd = jsonObject.getString("avatar_hd");// 头像  
    
                userModel.setUid(idstr);  
                userModel.setNickname(name);  
                userModel.setAvatar(avatar_hd);  
    
                msg.what = END_SINA;  
                handler.sendMessage(msg);  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    
        @Override  
        public void onComplete4binary(ByteArrayOutputStream arg0) {  
    
        }  
    
        @Override  
        public void onError(WeiboException arg0) {  
    
        }  
    
        @Override  
        public void onIOException(IOException arg0) {  
    
        }  
    
    }  
    
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        super.onActivityResult(requestCode, resultCode, data);  
    
        if (mSsoHandler != null) {  
            mSsoHandler.authorizeCallBack(requestCode, resultCode, data);  
        }  
    }  
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)