最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

使用SAP HANA XS搜索微博

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-4 10:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
简介
SAP HANA XS从SPS06开始引入了XSJS outbound connectivity这个非常有用的特性。通过XSJS outbound connectivity,我们可以在SAP HANA原生应用中发起HTTP/HTTPS请求去获取外部资源。这个特性使得SAP HANA和社交媒体的连接变成了可能,而且十分方便,我们可以从社交媒体上做很多有趣的分析。那么在本文中,笔者将向大家展示如何使用XSJS outbound connectivity搜索微博。

笔者去年去美国出了一次差,那是第一次去美国,周末闲得无聊想去电影院看一场电影,一时兴起用SAP HANA做了一个电影应用,然后用这个应用选了一部电影去看。这个应用的大致思路是从Twitter上爬取评价电影的微博,将其插入SAP HANA,然后使用SAP HANA自带的文本分析功能来分析情感,进而进行评分。但是,去年那个时候SAP HANA还是SPS05版本,还没有XSJS outbound connectivity功能,笔者只能用Twitter4J来连接Twitter API。要是那个时候有这个功能该多好啊!没关系,现在用这个功能来搜索微博还为时不晚,那就让我们开始吧!本文将使用Twitter作为例子,对于国内的读者来说需要先翻墙。。。

准备工作
  • 一个SAP HANA,至少SPS06版本,本文使用SAP HANA SPS08 Rev. 80
  • 一个Twitter账号

步骤
1.调查Twitter API
在第一步中,我们需要调查搜索微博需要使用哪个API,然后就是怎么和Twitter API交互,认证啦,授权啦这些事情。首先你可以从这里找到所有Rest API,我们想搜索微博,所以我们可以使用这个API,所有的信息都罗列的非常详细了,包括URL,参数和例子。
那么我们该如何调用这个API呢?可以从这里找到答案。因为我们只是搜索微博,所以我们可以使用Application-only authentication。从这个文档里面有一个包含三个步骤非常详细的例子,这恰恰就是我们所需要的。这里有一点需要注意,需要使用HTTPS来调用API v1.1,你可以从这里找到该信息。
2.使用Postman来模拟调用API
在第一步中,我们已经知道了如何调用Twitter API,我们可以先用Postman来测试一下。当然有很多和Postman类似的工具,你可以自由选择。所有步骤在这里已经详细描述,笔者在这里只是用一些截图总结一下。
a. 编码API key和API secret
首先如果你没有应用的话,你需要先创建一个应用。创建完应用,你可以在“API Keys”这个标签下找到应用的<API key>和<API secret>。笔者已经重新生成了API key和API secret,所以下图的API key和API secret已经作废。
然后将<API key>:<API secret>编码成Base64格式。你可以使用Base64 Decode and Encode - Online来完成。
b. 获取bearer token
你需要先退出Twitter账号,要不然会报错"403 Forbidden: The server understood the request, but is refusing to fulfill it.",下图的bearer token已经失效。
c. 用该bearer token测试GET search/tweets | Twitter Developers
测试成功,我们搜索带有#SAPHANA的微博,得到了如下结果。简单起见,我们只使用q这个参数。
3.设置SAP HANA使用HTTPS
截止到目前,我们已经成功使用Postman搜索了微博。为什么不用XSJS outbound connectivity来完成相同的事情呢?让我们开始吧!由于从API v1.1开始必须使用HTTPS,我们需要做的第一件事情就是让SAP HANA支持HTTPS访问,但是默认是不行的,我们需要进行配置。你可以参照这篇文章来完成该步。当你完成了该步,你应该可以做如下两件事情,如果不能说明没有配置成功。
a. 可以成功访问https://<hostname or IP>:43<instance number>/sap/hana/xs/admin/
b. 当你切换至“Trust Manager”标签页,没有“No valid SAP crypto configuration”错误。
4.创建Twitter API的trust store
在该步骤中,我们需要创建Twitter API的trust store。同样,你可以参照这篇文章来完成该步。你只需要修改一个地方,就是把https://api.github.com/换成https://api.twitter.com/
5.使用XSJS outbound connectivity搜索微博
我们终于到了这步。因为我们在前面几步已经完成了相当多的准备工作,这一步对我们来说就简单许多。我们只需要完成以下步骤即可,笔者是在SAP HANA Stuido里面完成的,当然读者也可以在Web IDE里面完成。项目结构如下图所示:
a. 创建XS项目
b. 创建.xsapp, .xsaccess和services目录
c. 创建twitterApi.xshttpdest,编辑,保存,激活
description = "twitter api";
host = "api.twitter.com";
port = 443;
pathPrefix = "/1.1";
useProxy = true;
proxyHost = "proxy.pal.sap.corp";
proxyPort = 8080;
authType = none;
useSSL = true;
timeout = 0;
d. 在下图红框里面编辑trust store,保存
e. 创建search.xsjs,编辑。从Application-only authentication | Twitter Developers,我们可以得知bearer token除非被注销,要么对于应用来说是一直有效的,所以我们不必每次都去获取bearer token,我们可以直接在代码里使用bearer token。
var destination = $.net.http.readDestination("searchTweets.services", "twitterApi");
var client = new $.net.http.Client();
var request = new $.net.http.Request($.net.http.GET, "/search/tweets.json?q=%23SAPHANA");
request.headers.set('Authorization', 'Bearer AAAAAAAAAAAAAAAAAAAAADa7RAAAAAAAUhLkOYDVULCmK2KnNlce6dURp7Y%3Dp1ERxtaQ0IdJMAi1EdZLjT4GDt1ketu1DzzPjNqHTk');
var response = client.request(request, destination).getResponse();
$.response.status = response.status;
$.response.contentType = response.contentType;
$.response.setBody(response.body.asString());
f. 保存,激活所有文件
6.测试
现在我们就可以来测试XSJS outbound connectivity了。测试成功,发现有一条微博是“The only limitation is our imagination!”,是笔者很欣赏的一句话。



总结
在本文中,我们成功使用XSJS outbound connectivity来搜索微博。但是,我们并没有将搜索到的记录插入SAP HANA,当然这个是完全可以做到的。除此之外,我们还可以用XSJS outbound connectivity来调用其他Twitter API。


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-6 03:55

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表