资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
前几天有客户要求把从系统中发布的部分新闻更新到新浪微博里面,就开始疯狂的研究新浪的提供的 API,在一天之中费劲周折终于是完成了!下面把流程备份一下:首先要 http:/open.weibo.com/打开新浪的开放平台,有微博帐号的直接登录,没有的注册一个。点击“应用开发”点击“创建应用”点击“网页应用”应用名称自己定义,应用地址创建自己的应用地址如果没有就随便填呗创建完成后,点击“管理中心”会看到自己创建的应用,我这已经是审核通过的了,如果刚创建的和这个下面界面不一样,不过这个不是重点。点击自己的应用点击“应用信息”-“ 基本信息” 这里面有俩个非常重要的信息 App Key 和 App Secret 点击“高级信息”这里面设置 回调页,这个设置的也是比较重要的,具体什么作用网上查吧!我就是写的百度到此为止,你要记住三个信息 App Key 和 App Secret 和 回调页的 url然后下一步就是写代码了:下载 example 在这个基础上进行测试参数配置:client_id 就是你的 App Keyclient_SERCRET 就是你的 App Secretredirect_URL 就是你的回调页 url这三个都配置了 你运行 里面的 main 方法基本都可以出来,控制台里面会出现这个是提示你输入 code 值的千万别直接敲 Enter 不然会报错哦呵呵呵呵呵,我就是报了好几次这个错,才知道是让输入值的。这个 code 是从哪来呢,嘿嘿,如果一切正常的话,是从你的回调页的 rul 后面跟着的code=XXX就是这个 XXX,如果你跳出的页面是个提示错误的 ,client_id 无效的话,说明你是刚刚建立的应用,所以还没有生效,只要你等上几个小时后再运行就可以了,我当时就被苦苦的纠结在这,为什么我的 client_id 和 client_SERCRET 都是对的还提示无效,就是这个原因!当你输入 code 后就会得到你要的 AccessToken信息,这个才是你利用接口的最基本的权限证书但是这样获得 AccessToken 的方法不太靠谱,因为每次都要从回调页里面获得,不能满足我们的需要,我们想自动的获得 code 的值,从而获得 AccessToken,这一切都是在代码中搞定的,可是新浪的官方接口貌似没有这样的方法,被逼无奈我们只能另觅他径了,我费了好大的劲才搞定的 public static AccessToken refreshToken() try String url = WeiboConfig.getValue(authorizeURL);/*模拟登录的地址,https:/api.weibo.com/oauth2/authorize*/ PostMethod postMethod = new PostMethod(url); postMethod.addParameter(client_id, WeiboConfig.getValue(client_ID);/your client id postMethod.addParameter(redirect_uri, WeiboConfig.getValue(redirect_URI);/your url postMethod.addParameter(userId, WeiboConfig.getValue(userId);/需要获取微薄的use id postMethod.addParameter(passwd, WeiboConfig.getValue(passwd); postMethod.addParameter(isLoginSina, 0); postMethod.addParameter(action, submit); postMethod.addParameter(response_type, WeiboConfig.getValue(response_type);/code HttpMethodParams param = postMethod.getParams(); param.setContentCharset(UTF-8); List headers = new ArrayList(); headers.add(new Header(Referer, https:/api.weibo.com/oauth2/authorize?client_id=+WeiboConfig.getValue(client_ID)+&redirect_uri=+WeiboConfig.getValue(redirect_URI)+&from=sina&response_type=code);/伪造referer headers.add(new Header(Host, api.weibo.com); headers.add(new Header(User-Agent, Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0);ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();Protocol.registerProtocol(https, new Protocol(https, fcty, 443);HttpClient client = new HttpClient(); client.getHostConfiguration().getParams().setParameter(http.default-headers, headers); client.executeMethod(postMethod); int status = postMethod.getStatusCode(); if(status != 302) return null; Header location = postMethod.getResponseHeader(Location); if(location != null) String retUrl = location.getValue(); int begin = retUrl.indexOf(code=); if(begin != -1) int end = retUrl.indexOf(&, begin); if(end = -1) end = retUrl.length(); String code = retUrl.substring(begin+5, end);System.out.println(code);if(code != null) Oauth oauth = new Oauth(); AccessToken token = oauth.getAccessTokenByCode(code); return token; catch (Exception e) e.printStackTrace(); return null;但是这个呢需要俩个类保证正常运行,网上可以搜一下
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号