使用新浪微博开放平台api同步微博内容至自己网站(看来微博下载微博开放平台.java类A*敏*感*词*ey和AppSecret)

优采云 发布时间: 2021-12-03 12:11

  使用新浪微博开放平台api同步微博内容至自己网站(看来微博下载微博开放平台.java类A*敏*感*词*ey和AppSecret)

  看来微博又在中国发展起来了,不容忽视,因为昨天有这么一条新闻“中国首届微博开发者大会”,官网如下:

  

  使用新浪微博开放平台的API,首先需要获取新浪分配的App key和App Secret。下面是我创建应用后新浪分配的App key和App Secret(这个要保密)。

  

  然后下载微博SDK,我用的是Java的weibo4j。目前提供以下语言版本:

  

  将SDK包中的weibo.java类的App Key和App Secret修改为刚刚获取的App Key和App Secret,如下图使用说明所示:

  

  完成这些之后,就可以根据提供的Demo开始编写代码了。如下:

  WebOAuth.java用于初始化Weibo.java类所需的App Key和App Secret,并提供getRequestToken()和gettAccessToken()方法来获取Request Token和Access Token。所需参数如代码所示。此外,还提供了发布文本微博的update()方法。

  

package weibo4j.examples;  import weibo4j.Status; import weibo4j.Weibo; import weibo4j.WeiboException; import weibo4j.http.AccessToken; import weibo4j.http.RequestToken; import java.io.UnsupportedEncodingException;  // Web 方式认证 public class WebOAuth {     private Weibo weibo;      public WebOAuth(){               // 准备好Consumer Key、Consumer Secret         // 对应于新浪微博应用就是申请到的 App key 和 Secret key         System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);         System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);         weibo = new Weibo();     }      // 根据传入的 callback_url 获取 request token     public RequestToken getRequestToken(String backUrl) {         try {             // 指定 callback_url 并获得 request token             RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);              System.out.println("Request token: " + requestToken.getToken());             System.out.println("Request token secret: " + requestToken.getTokenSecret());              return requestToken;         } catch (Exception e) {             System.out.println("获取Request token发生异常!");             e.printStackTrace();             return null;         }     }      // 根据传入的 request token 和 verifier 获取 access token     public AccessToken gettAccessToken(RequestToken requestToken, String verifier) {         try {                        AccessToken accessToken = weibo.getOAuthAccessToken(requestToken                     .getToken(), requestToken.getTokenSecret(), verifier);                          System.out.println("Access token: " + accessToken.getToken());             System.out.println("Access token secret: " + accessToken.getTokenSecret());              return accessToken;         } catch (Exception e) {             System.out.println("获取Access token发生异常!");             e.printStackTrace();             return null;         }     }      // 根据传入的 Access Token 和内容发表微博     public void update(AccessToken access, String content) {         try {             weibo.setToken(access.getToken(), access.getTokenSecret());             content = new String(content.getBytes("GBK"), "UTF-8");             Status status = weibo.updateStatus(content);             System.out.println("成功发表微博:" + status.getText() + ".");         } catch (UnsupportedEncodingException e) {             System.out.println("微博内容转编码发生异常!");             e.printStackTrace();         } catch (WeiboException e) {             System.out.println("发表微博发生异常!");             e.printStackTrace();         }     } } 

  request.jsp 用于提供 callback_url(这里我们自定义为下面的 callback.jsp)。获取RequestToken后,将RequestToken保存到Session中,将页面重定向到callback.jsp进行验证和授权。

  

                请点击进行Web方式的OAuth认证!</a>     

  callback.jsp,在上一步重定向之后,oauth_verifier 参数会附加到callback_url。这时候我们根据Session中存储的RequestToken和获取到的oauth_verifier参数来申请AccessToken。获取到AccessToken后,我们将页面重定向到writeWeibo.html页面,用于写微博。

  

      

  writeWeibo.html,一个非常简单的HTML文件。

  

     发布sina微博                              请在这里写上140字符以内的文本:             测试新浪微博!                                          

  updateWeibo.jsp,用于发布文本微博,即调用WebOAuth.java中的update方法。

  

      

  在运行之前,我们要准备好Tomcat,把上面的源文件放到正确的目录下。另外,SDK包中收录的commons-httpclient-3.1.jar包要添加到\WEB-INF\lib目录下,weibo4j.jar(里面是具体的Java在新浪微博开放平台实施)。

  运行Tomcat,在浏览器中访问request.jsp页面,如下图:

  

  点击链接,如下图(注意地址栏的变化):

  

  地址栏的网址如下:

  ://localhost:8080/sinaweibo/callback.jsp

  填写具体有效的新浪微博账号、密码和授权。以下是我用于测试授权的微博账号的填写结果:

  

  地址栏的网址如下:

  :8080/sinaweibo/writeWeibo.html

  点击“发布”,如下图:

  

  登录微博查看,如下图:

  

  查看账户授权的应用列表:

  

  至此,使用新浪微博开放平台发布微博的OAuth方式大概就是这个过程了。

  概括:

  1、 其实还有很多细节没说到。我尝试了很多次,才发现问题,理解问题,然后解决问题。

  2、 如果我们登录新浪微博的账号信息cookie已经保存在浏览器中,那么授权时就不需要输入账号信息了,当然不用当前账号也可以修改用于授权;

  3、 还有一些信息是在控制台输入的,比如Token、URL、服务器返回信息等,截图中没有显示。

  您可能对以下内容感兴趣:

  OAuth与新浪微博开放平台介绍

  本文来自“蚂蚁”博客,请务必保留此出处

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线