《教你如何利用新浪微博开发平台--网页》由会员分享,可在线阅读,更多相关《教你如何利用新浪微博开发平台--网页(5页珍藏版)》请在金锄头文库上搜索。
1、前几天有客户要求把从系统中发布的部分新闻更新到新浪微博里面,就开始疯狂的研究新浪的提供的 API,在一天之中费劲周折终于是完成了!下面把流程备份一下:首先要 http:/ 基本信息” 这里面有俩个非常重要的信息 App Key 和 App Secret 点击“高级信息”这里面设置 回调页,这个设置的也是比较重要的,具体什么作用网上查吧!我就是写的百度到此为止,你要记住三个信息 App Key 和 App Secret 和 回调页的 url然后下一步就是写代码了:下载 example 在这个基础上进行测试参数配置:client_id 就是你的 App Keyclient_SERCRET 就是你的
2、 App Secretredirect_URL 就是你的回调页 url这三个都配置了 你运行 里面的 main 方法基本都可以出来,控制台里面会出现这个是提示你输入 code 值的千万别直接敲 Enter 不然会报错哦呵呵呵呵呵,我就是报了好几次这个错,才知道是让输入值的。这个 code 是从哪来呢,嘿嘿,如果一切正常的话,是从你的回调页的 rul 后面跟着的code=XXX就是这个 XXX,如果你跳出的页面是个提示错误的 ,client_id 无效的话,说明你是刚刚建立的应用,所以还没有生效,只要你等上几个小时后再运行就可以了,我当时就被苦苦的纠结在这,为什么我的 client_id 和 c
3、lient_SERCRET 都是对的还提示无效,就是这个原因!当你输入 code 后就会得到你要的 AccessToken信息,这个才是你利用接口的最基本的权限证书但是这样获得 AccessToken 的方法不太靠谱,因为每次都要从回调页里面获得,不能满足我们的需要,我们想自动的获得 code 的值,从而获得 AccessToken,这一切都是在代码中搞定的,可是新浪的官方接口貌似没有这样的方法,被逼无奈我们只能另觅他径了,我费了好大的劲才搞定的 public static AccessToken refreshToken() try String url = WeiboConfig.getV
4、alue(authorizeURL);/*模拟登录的地址,https:/ 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
5、(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(); pa
6、ram.setContentCharset(UTF-8); List headers = new ArrayList(); headers.add(new Header(Referer, https:/ headers.add(new Header(Host, ); 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()
7、;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; Head
8、er 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;但是这个呢需要俩个类保证正常运行,网上可以搜一下