当前位置: 首页 > news >正文

用帝国做的网站只收录首页工商网查询官网

用帝国做的网站只收录首页,工商网查询官网,外包,江苏省建设安全协会网站在上一篇内容已经介绍了怎么申请twitter开放的API接口。 下面介绍怎么通过twitter提供的API#xff0c;进行授权登录功能。 开发者页面设置 首先在开发者页面开启“用户认证设置”#xff0c;点击edit进行信息编辑。 我的授权登录是个网页#xff0c;并且只需要进行简单的…在上一篇内容已经介绍了怎么申请twitter开放的API接口。 下面介绍怎么通过twitter提供的API进行授权登录功能。 开发者页面设置 首先在开发者页面开启“用户认证设置”点击edit进行信息编辑。 我的授权登录是个网页并且只需要进行简单的登录和获取登录人员基础信息这些信息所以进行了以下设置。 这里一定要配置回调地址这个地址至关重要。 测试期间不需要域名这些也不需要天公网IP。 内网本地地址就可以http://localhost:63342/index.html 也可以自己可以写一个简单的测试页 了解授权步骤 编写代码之前我们要先了解twitter授权登录的三步骤。 https://developer.twitter.com/en/docs/authentication/guides/log-in-with-twitter 以上链接有详细的授权验证过程当然我也可以简单介绍一下。 请求https://api.twitter.com/oauth/request_token接口。 在请求这个接口的时候不仅要传申请的consumerKey和consumerSecret还得填写oauth_callback的值。这个值的内容填写你上面在Callback URL里填写的回调地址【http://localhost:63342/index.html】。请求成功后拿到oauth_token值网页调转到https://api.twitter.com/oauth/authenticate页面链接后面加上 ** ?oauth_token ** 的值。 参数成功的话会正确调转到twitter授权的页面点击授权按钮后twitter页面会跳转回你填写的页面链接。 回到自己的页面后页面的URL会携带两个参数和参数值。oauth_token和oauth_verifier 拿到URL中传回的这两个值请求https://api.twitter.com/oauth/access_token接口拿到用户授权的screen_name和user_idauth_token和oauth_token_secret这些值。token和token_secret两个参数可以通过请求https://api.twitter.com/2/users/me接口获取用户的一些基础信息。 注意以上过程oauth_token和oauth_verifier的值失效时间很短暂找到一个帖子说只有30秒所以接口连贯性请求很重要只有速度快速授权过程才能完成。 编写代码 流程介绍完开始编写代码。 首先网页上增加一个按钮。 !-- 点击按钮触发授权 --button onclickauthorizeTwitter()Twitter授权登录/button编写js代码authorizeTwitter()方法 function authorizeTwitter() {// 发起授权请求$.ajax({url:http://localhost:8070/twitter/login,type:POST,async: true,cache: false,contentType: false, //不设置内容类型processData: false, //不处理数据success:function(data){var code data.code;if(code 200){window.location.href https://api.twitter.com/oauth/authenticate?oauth_tokendata.result;}else{console.error(授权请求错误:);layer.alert(请求失败,请稍候重试);}}}); }twitter/login接口核心代码如下 callback的传值就是开发者里配置的Callback URL的填写的值。 和网页配置的保持一致不可随意传值。 active的值只是用于开启代理的开关上篇代码有写根据自己需求传不同的值。 /*** 第一步通过授权code获取token* param active 当前环境 dev test prod* return*/public static String RequestToken(String callback,String active) {CommonsHttpOAuthConsumer consumer new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);// 创建HttpParameters对象并添加自定义参数HttpParameters parameters new HttpParameters();parameters.put(OAuth.OAUTH_CALLBACK, callback);consumer.setAdditionalParameters(parameters);// 创建HttpClient对象HttpClient httpClient setProxy(active);// 创建API请求例如获取用户的时间线String apiUrl https://api.twitter.com/oauth/request_token;HttpGet request new HttpGet(apiUrl);// 对请求进行OAuth1签名try {consumer.sign(request);} catch (OAuthMessageSignerException e) {e.printStackTrace();} catch (OAuthExpectationFailedException e) {e.printStackTrace();} catch (OAuthCommunicationException e) {e.printStackTrace();}// 发起API请求HttpResponse response null;try {response httpClient.execute(request);} catch (IOException e) {e.printStackTrace();}// 处理API响应int statusCode response.getStatusLine().getStatusCode();String responseBody null;try {responseBody EntityUtils.toString(response.getEntity());} catch (IOException e) {e.printStackTrace();}if (statusCode 200) {System.out.println(API调用成功);System.out.println(响应内容);System.out.println(responseBody);return responseBody;} else {System.out.println(API调用失败状态码 statusCode);System.out.println(错误信息);System.out.println(responseBody);return responseBody;}}成功返回的值形式如下 oauth_tokenqQn3YwAAAAABq1bmAAABi9gPG1Moauth_token_secret2QBmMyDV450YG1dtdf5KnnGrztnRXKmRoauth_callback_confirmedtrue我用httpcore工具进行解析需要用到的类如下。 import org.apache.http.NameValuePair; import org.apache.http.client.utils.URLEncodedUtils; ListNameValuePair parameters URLEncodedUtils.parse(responseString, StandardCharsets.UTF_8); // 遍历参数并输出键值对 for (NameValuePair parameter : parameters) {String key parameter.getName();String value parameter.getValue();map.put(key,value); }把oauth_token值传到前台页面前台页面进行跳转。 参考如下 https://api.twitter.com/oauth/authenticate?oauth_tokenqQn3YwAAAAABq1bmAAABi9gPG1M授权成功之后调转回调页面。如果之前授权过会很快跳转到回调页面。 http://localhost:63342/index.html?oauth_tokens19K7gAAAAABq1bmAAABi9fpDPIoauth_verifiercHqqlM9vi0gn8EDDtrCmUvh3jCSQCGcL拿到oauth_token和oauth_verifier的值页面load()方法解析获取oauth_token和oauth_verifier请求第二个接口。 function callbackTwitter(token,verifier) {var authorize new FormData();authorize.append(oauth_token,token);authorize.append(oauth_verifier,verifier);console.log(authorize);// 发起授权请求$.ajax({url:http://localhost:8070/twitter/verifier,type:POST,data:authorize,async: true,cache: false,contentType: false, //不设置内容类型processData: false, //不处理数据success:function(data){ // var data eval(( data ));var code data.code;if(code 200){//自己业务}else{console.error(授权请求错误:);layer.alert(请求失败,请稍候重试);}}});}第二个接口核心Java代码。 oauth_verifier值是放在请求体里和第一个接口oauth_callback参数方式有些不同。 /*** 第二部页面跳转* param token* param verifier* param active* return*/public static String callback(String token,String verifier, String active) {// 创建CommonsHttpOAuthConsumer对象设置OAuth1验证参数CommonsHttpOAuthConsumer consumer new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);// 创建HttpParameters对象并添加自定义参数HttpParameters parameters new HttpParameters();parameters.put(OAuth.OAUTH_TOKEN, token);consumer.setAdditionalParameters(parameters);// 创建HttpClient对象HttpClient httpClient setProxy(active);// 创建API请求例如获取用户的时间线String apiUrl https://api.twitter.com/oauth/access_token;HttpPost request new HttpPost(apiUrl);try {request.setHeader(Content-Type,application/x-www-form-urlencoded);consumer.sign(request);// 创建参数列表ListNameValuePair bodypara new ArrayList();bodypara.add(new BasicNameValuePair(oauth_verifier, verifier));// 将参数转换为UrlEncodedFormEntityStringEntity entity new UrlEncodedFormEntity(bodypara, StandardCharsets.UTF_8);// 设置HttpPost的实体request.setEntity(entity); // request.setEntity();} catch (OAuthMessageSignerException e) {e.printStackTrace();} catch (OAuthExpectationFailedException e) {e.printStackTrace();} catch (OAuthCommunicationException e) {e.printStackTrace();}// 发起API请求HttpResponse response null;try {response httpClient.execute(request);} catch (IOException e) {e.printStackTrace();}// 处理API响应int statusCode response.getStatusLine().getStatusCode();String responseBody null;try {responseBody EntityUtils.toString(response.getEntity());} catch (IOException e) {e.printStackTrace();}if (statusCode 200) {System.out.println(API调用成功);System.out.println(responseBody);return responseBody;} else {System.out.println(API调用失败状态码 statusCode);return responseBody;}}请求成功后的返回内容。 oauth_token1517001992861716480-xVY7MpIqQrH1XeFv5l6rOL0FqG9WPjoauth_token_secretA52yWlrFd1MDIrYU0IcnmlnmimMOw0UXRJNfnry3bJNfmuser_id151700199286171xxxxscreen_nameTTTTTTTXX这用户的重要的用户ID和用户名就获取到了。 整个授权流程算是完成了。 我的业务是需要获取用户的粉丝数和其他一些基础信息这时候就可以用返回的oauth_token和oauth_token_secret两个值请求https://api.twitter.com/2/users/me接口。 代码示例可在上篇看到。
http://www.zqtcl.cn/news/617767/

相关文章:

  • 如何修改asp网站栏目帝国cms网站搬家教程
  • 网站建设与网页制作小团队兼职做网站
  • 嘉兴做网站的公司网红营销价值
  • scala做网站广州化妆品网站制作
  • 网站建设小组五类成员在线购物网站功能模块
  • 网站建设开发详细步骤流程图网站建设与管理实训报告总结
  • 网站设计的素材旅游网站建设标书
  • 做网站还得备案大企业网站建设多少钱
  • 一般做网站空间大概多少钱电商网站开发公司
  • 海报模板在线制作免费网站如何建设个人网站
  • 网站集群建设的意义如何优化推广网站
  • 怎么给公司做免费网站服装品牌网页设计图片
  • 中国通信建设协会网站新手建网站教程
  • 做网站页面的需要哪些技巧wordpress 网址导航
  • 如何做美食网站设计广州网页设计招聘
  • 中国商标网商标查询官方网站页面模板怎么添加文章
  • 建设基础化学网站的经验如何建设网站pdf下载
  • 外贸公司网站设计公司做网站能挣钱不
  • 免费网站ppt模板下载济南建设网站公司
  • 网站建设技术托管免费空间域名注册免备案
  • 威海住房建设部官方网站专科网站开发就业方向
  • 做外贸网站多少钱成都网页设计专业
  • 北京比较好的网站公司在线医生免费咨询
  • 免费的个人网站怎么做企业网站管理系统软件
  • 枣庄住房和城乡建设局网站如何注册国外域名
  • 满洲里建设局网站网页设计公司的目标客户有哪些
  • 英文书 影印版 网站开发怀化组织部网站
  • 网站建设领域的基本五大策略要学会网站细节
  • dede做英文网站优化cms建站系统哪个好
  • eclipse sdk做网站邯郸技术服务类