`
Jelen_123
  • 浏览: 68833 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

基于java的新浪API开发流程

阅读更多
       这两天由于在用htmlunit和httpclient实现登录新浪微博上遇到了一些麻烦,不得不转到直接用新浪提供的API来实现这些功能。
       要用java来实现新浪API的开发,下面是一些流程的总结:
1,下载java  JDK,
      http://open.weibo.com/wiki/index.php/SDK#Java_SDK
2,注册新浪的用户,在开放平台上创建自己的应用http://open.weibo.com/development
然后获得新浪提供的Appkey,和App secret这两个号码,进行开发必须得拥有的两个号码,是新浪提供的给用户开发基于新浪微博的应用的口令吧,先把这两个号码记录下来。
ps:为了能正常的进行一下的程序执行,需要在“我的应用”下,“编辑属性”-》“授权设置”,里面是一个回调地址,在下面的3点有说到。然后是“安全设置”,进行域名绑定,是回调地址的域名,下一步是“测试用户”,用来测试你的这个应用的用户,查到你的Uid,添加即可。(Uid是点击你的微博首页时,显示在url上的那串数字)。OK!
3,将下载下来的JDK解压,导入到Myeclipse中(这个应该不是问题吧),新浪提供的JDK已经有一些例子了,很好的说明了如果去使用这个JDK.好了,导入后要修改一个文件,叫config.properties的配置文件,在Client_ID上填写之前获取到的Appkey,Client_SCRETE上填写之前获取到的App secret,然后就到了redirect_URL,这个是回调地址,用于在你执行程序后返回一个code给你,之前一直不知道回调地址是啥,后来摸索了一下才知道这个地址只要是一个能访问的网址即可,只是用于在执行的时候在这个网址后面传送一个code给你,我是选了新浪的一些可以访问的网址的。
4,设置后这些之后就可以执行example下的weibo4j.examples下的OAuth4code文件了,执行后回弹出一个页面,只要用你的新浪号授权即可,这时会打开一个刚才设定的回调页面,网址后面有code,获得code后,在程序执行的控制台上输入这个code,回车后就能获取Accesstoken这好号码了,这个是我们以后开发的时候使用的号码。
OK了,获取到这个号码之后就可以进行程序的开放了,看一下执行一个例子,如weibo4j.examples.user下的showuser,把里面的access_token改成你获得的那个,uid改成你自己的,就可以执行程序了。以后的开发也是类似~
分享到:
评论
5 楼 mingyanhuang 2013-08-07  
你好,我也是按照你说的去操作,但是当输入那个code的以后一直报错,请大神帮看下,
Hit enter when it's done.[Enter]:b7a436d46057b2049970761fe0a61a24
0    INFO  [2013-08-07 16:03:32]  code: b7a436d46057b2049970761fe0a61a24
118  DEBUG [2013-08-07 16:03:32]  Request:
119  DEBUG [2013-08-07 16:03:32]  POSThttps://api.weibo.com/oauth2/access_token
2076 INFO  [2013-08-07 16:03:34]  I/O exception (java.net.SocketException) caught when processing request: Connection reset
2077 INFO  [2013-08-07 16:03:34]  Retrying request
2096 INFO  [2013-08-07 16:03:34]  I/O exception (java.net.SocketException) caught when processing request: Connection reset
2096 INFO  [2013-08-07 16:03:34]  Retrying request
2116 INFO  [2013-08-07 16:03:34]  I/O exception (java.net.SocketException) caught when processing request: Connection reset
2116 INFO  [2013-08-07 16:03:34]  Retrying request
2136 INFO  [2013-08-07 16:03:34]  e.getErrorCode():-1
2137 INFO  [2013-08-07 16:03:34]  e.getStatusCode():-1
weibo4j.model.WeiboException: Connection reset
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:422)
at weibo4j.http.HttpClient.post(HttpClient.java:302)
at weibo4j.Oauth.getAccessTokenByCode(Oauth.java:80)
at weibo4j.examples.oauth2.OAuth4Code.main(OAuth4Code.java:23)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:798)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:632)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506)
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:396)
... 3 more

帮忙看下问题出在哪,谢谢
4 楼 Jelen_123 2012-08-26  
WindTaylor 写道
最近我也是在尝试用HtmlUnit登录新浪微博时无从下手。你遇到的问题是什么?我遇上的问题貌似是由于登录框是js动态生成的html元素,而导致htmlUnit获取HtmlElement时无法找到Element

嗯嗯,是的,通过这个可以登录上去,能获取登录的信息,但是我觉得可能是因为微博的那些显示的信心都是js动态生成的,htmlunit解析处理js好像不是很好用,一直获取不了微博信息。。。
3 楼 WindTaylor 2012-08-09  
最近我也是在尝试用HtmlUnit登录新浪微博时无从下手。你遇到的问题是什么?我遇上的问题貌似是由于登录框是js动态生成的html元素,而导致htmlUnit获取HtmlElement时无法找到Element
2 楼 Jelen_123 2012-02-07  
fqeunagn 写道
看君一言,胜过自己调试十天啊···在下菜鸟,新浪微博的开发有挺多地方不是很懂,以后要多和大神请教了。


大神远不能叫,闻道有先后而已。。。
1 楼 fqeunagn 2012-01-09  
看君一言,胜过自己调试十天啊···在下菜鸟,新浪微博的开发有挺多地方不是很懂,以后要多和大神请教了。

相关推荐

Global site tag (gtag.js) - Google Analytics