网站调用新浪微博内容(联合第三方平台登录接入,初次接触开放平台和AppSecret5 )

优采云 发布时间: 2022-01-19 18:10

  网站调用新浪微博内容(联合第三方平台登录接入,初次接触开放平台和AppSecret5

)

  最近做了一个关于联合第三方平台的登录访问,第一次接触到开放平台,在这里做个笔记。

  开发前的准备工作如下:

  1、注册新浪微博

  2、访问新浪微博开发平台,如果是企业,申请企业接入并提交相关材料进行审核;如果是个人开发者,请申请个人开发者申请。我们以开发者为例

  3、 使用新浪微博开放API,需要向新浪申请一个a*敏*感*词*ey和一个App Secret。这些是入口。您必须先获得这两个,然后才能访问下一个作品。

  4、输入完善个人信息后,必须完成身份验证审核。审核完成后,新浪开放平台会给出a*敏*感*词*ey和App Secret。

  5、接下来就是如何使用a*敏*感*词*ey和App Secret了。您需要在开放平台下载文档或演示代码。其实提供的文档基本上都是技术文档,很多东西没有解释清楚。还是会有很多麻烦

  6、新浪开放平台提供了很多不同开发语言的SDK,这里我选择java SDK,下载一个zip文件(包括新接口和OAuth2.0),解压后可以直接导入go到eclipse,结构如下,包括weibo4j源码和示例代码

  

  这里是一个config配置文件,打开如下:

  

  我们之前申请的a*敏*感*词*ey和App Secret就派上用场了。这里的client_ID为a*敏*感*词*ey,client_SERCRET为App Secret,填写对应内容,redirect_URI为回调地址。

  点击“第三方”-》跳转微博登录-》登录ok,授权-》回调自己的应用,这里是回调地址的意思。

  7、开始运行测试程序,测试程序在example下,包weibo4j.examples.oauth2下的类OAuth4Code,这里我们需要做一些修改,修改程序在

  oauth.authorize("code",args[0],args[1]),把这一段改成oauth.authorize("code","","all"),至于为什么,请看这里的接口文档说明使用 oauth.authorize

  假设我们这里没有回调地址,配置文件中的redirect_URI为空。运行后会自动打开浏览器运行测试,显示如下:

  

  此时的URL地址为:

  这说明我的a*敏*感*词*ey和App Secret是有效的,因为我们还没有创建正式的应用,新浪无法识别我的来源

  8、在开放平台上创建应用,如下图

  

  这里的应用分为三种类型,网站访问、现场应用和移动应用。如果是企业行为,有公有域名可以访问,应用通过域名访问。这里两种方法都可以,但是如果我们只是一个简单的开发者,没有公网域名,比如内网模式,ip以内网地址192.168.开头1.*,本地127.0.0.1等,这里只能选择创建站内应用,填写如下

  

  这里红框标注的地方就是回调地址。如果我没有公网ip和域名,我在局域网玩的时候随便填,但是不能用localhost代替127.0.0.1,这里是按照配置要求做的,这个配置的要求很严格,

  尤其是下面的应用图标比较麻烦。完成后,您可以提交它们以供审核。

  9、提交审核后,新浪开放平台会在1天左右第一时间发邮件到您的邮箱,通知您审核结果,但不管审核结果是否失败,关键是提交审核。没有审核成功,这里可以照常使用

  

  10、完成测试项目中的配置文件redirect_URI,必须与创建应用时填写的【应用实际地址】一致,这是回调地址!完成配置后,再次运行OAuth4Code.java,如图

  

  在这里你会跳转到新浪微博的登录页面。登录你的新浪微博账号后,需要点击授权,表示平台可以访问你的微博账号内容分享你的信息等。授权结束后,

  将返回一个代码。这段代码非常重要。它是我们整个访问第三方平台的门钥匙。通过这段代码,我们可以获取到用户的access_token、UID等内容,相当于整个访问过程。

  11、调用新浪微博开放API

  这里我们需要研究这些API来满足访问的需要。首先要熟悉的是OAuth2.0授权接口,网上可以查到,如下:

  

  12、通过servlet程序调用开放API获取新浪微博的UID和微博名的示例

  

  response.setContentType("text/html;charset=UTF-8");

String accessToken = null ;

String uid = null ;

String screenName = null ;

String username = null ;

AccessToken accessTokenObj = null ;

Oauth oauth2 = new Oauth();

try {

out = response.getWriter();

accessTokenObj = oauth2.getAccessTokenByCode(code) ;

logger.info(accessTokenObj);

accessToken = accessTokenObj.getAccessToken() ;

oauth2.setToken(accessToken) ;

Account account = new Account() ;

account.client.setToken(accessToken) ;

JSONObject uidJson = account.getUid() ;

uid = uidJson.getString("uid") ;

Users users = new Users() ;

users.client.setToken(accessToken) ;

User weiboUser = users.showUserById(uid) ;

username = weiboUser.getName() ;

screenName = weiboUser.getScreenName() ;

} catch (WeiboException | IOException | JSONException e) {

e.printStackTrace();

}

out.println("微博访问Token_Info:" + accessTokenObj + "\t");

out.println("微博访问Token:" + accessToken + "\t");

out.println("微博用户-Uid:" + uid + "\t");

out.println("微博用户-名称:" + screenName + "\t");

out.flush();

out.close();*/

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线