惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - Zhuang miao

使用bootstrap和metroui设计的微网站或手机app界面 利用Mahout实现在Hadoop上运行K-Means算法 大连二手汽车培训网上线 Nodejs+express+angularjs+mongodb搭建前端项目框架NJBlog 淘宝UED前端智勇大冲关第二季 CC.net&Nant配置文件 介绍一个款可以在javascript对象上实现观察者模式的类库-Watch.js 开发nodejs模块并发布到npm的简单示例 用jsTestDriver运行jasmine cases 使用Jasmine测试你的Javascript(三)之 Matchers 使用Jasmine测试你的Javascript(二)之 Suites和specs - Zhuang miao 使用Jasmine测试你的Javascript(一)之 Jasmine简介 - Zhuang miao 用SignalR创建实时永久长连接异步网络应用程序 - Zhuang miao Javascript实现图片的预加载的完整实现 常见前端面试题【转】 - Zhuang miao 更改页面背景的jquery插件 javascript面向对象中的对象创建、继承、封装等实现方式 12款华丽的Admin管理后台模板 AOP
淘宝开放平台API调用nodejs实现
Zhuang miao · 2013-05-10 · via 博客园 - Zhuang miao

2013-05-10 13:25  Zhuang miao  阅读(11244)  评论()    收藏  举报

 最近开发淘宝开放平台上的应用,淘宝本身提供了php, c# ,java,python四中调用的方法和SDK,由于最近nodejs非常火热,所以我基于nodejs实现了一套调用的方式,具体实现细节如下

源代码地址:TOP-Nodejs-seed

淘宝开放平台API调用Nodejs版本实现

淘宝开放平台(Taobao Open Platform以下简称TOP)API调用方式可以通过此处查看。

本代码为调用TOP API的Nodejs实现版本。可以在此基础上进行开发.

你可以通过如下的步骤,轻松进入开发状态

1,获得代码

https://github.com/mz121star/taobao.git

2,进入项目目录,执行如下命令安装项目的依赖包

npm install

3,修改appconfig.js文件中的Appkey和Appsecret的值(该值从你的应用证书页面获得)

AppKey:"从淘宝获得的Appkey",

AppSecret:"从淘宝获得的AppSecret"

到此为止,你已经完成了项目运行起来所需要的全部步骤,你可以通过如下命令启动web服务.

node app.js

此时,你可以通过浏览器访问http://localhost:3000查看效果,本项目实现了一个简单的获取卖家当前出售商品的demo。至此,所有演示已经结束,你可以通过如下的介绍,开始进行项目的继续开发。

开始开发

开发前首先用你喜欢的编辑器打开项目,此处我推荐使用webstorm

项目结构

|-public /*用来存放网站的静态资源,包括css js images等

|-routes /*存放controller文件
|-SDK

|-index.js  /*提供了前端通过js调用API的功能 通过$.ajax("/rest")访问到的及时此文件    

|-test /*存放测试文件,项目测试采用Mocha

|-util 调用淘宝API的核心功能

|- sign.js 用于签名JSSDK
|-TopAPI.js api调用的核心文件|-TopHelper.js一些工具类,如加密等

|-views 存放前端HTML文件,项目使用handlebars模板引擎,所以文件后缀为hbs

API签名流程

程序登陆页为index。

登录成功后会回调到/success处理(此处为你在开发中心配置的回调地址)。在此处理中需要做如下判断。
将成功验证的客户端session分配到cookie中,然后将页面跳转向/main(具体功能)页面.

if (TopHelper.VerifyTopResponse(qstring.top_parameters, qstring.top_session, qstring.top_sig> n, config.AppKey, config.AppSecret)){
var nick=TopHelper.GetParameters(qstring.top_parameters,"visitor_nick");
          res.cookie(nick,qstring.top_session);
          res.cookie("client_session",qstring.top_session);
          res.send("验证成功");
          res.redirect("/main");}

如何在nodejs中调用API? ##

你只需通过如下一行代码即可调用(具体API

TopAPI.Execute(method, options,function(data){})/*method 需要调用API的名称,如:“taobao.item.get”
   /*API需要传入的参数
  

如何利用jquery调用API?

和上面大体相同,你可以通过如下方式。

$.post("/rest", {method:"taobao.items.onsale.get", options:options }, function (data) {})