论坛首页 编程语言技术论坛

淘宝开放API应用

浏览 18252 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-30   最后修改:2008-12-31
淘宝开放API应用,官方例子有.NET、PHP和java,看了java只是填充参数用HttpURLConnection模拟发送Post请求来实现,如果用rails来开发是不是更加方便呢?

用ActiveResource可以满足要求吗?

欢迎大家讨论,淘宝开放API的应用开发。

http://mall.alisoft.com/apps/home/home.jspa

http://wiki.isv.alisoft.com/index.php/%E9%A6%96%E9%A1%B5


嗯~经过Quake Wang的启发,做了一个淘宝商品的简单查询

http://www.imeifa.com.cn/mytaobao

接口还是很不错,就看做出怎么样的软件让用户喜欢上你的软件了!

下面是控制器代码

require 'rubygems'
require 'net/http'
require 'uri'
require 'md5'

class MytaobaoController < ApplicationController
  layout 'taobao'
  skip_before_filter :verify_authenticity_token

  def index
    respond_to do |format|
      format.html
    end
  end

  def taobao
    url = URI.parse('http://sip.alisoft.com/sip/rest')
    p = {
      'sip_appkey' => '20426',
      'sip_appsecret' => '144098c0d58411ddbc14a92bef58a353',
      'sip_apiname' => 'taobao.items.get',
      'sip_timestamp' => Time.now.strftime("%Y-%m-%d %H:%M:%S"),
      'format' => 'json',
      'page_no' => params[:page_no],
      'page_size' => params[:page_size],
      'v' => '1.0',
      'q' => params[:q],
      'fields' => 'iid,title,nick,type,cid,pic_path, delist_time,price,post_fee'
    }
    p["sip_sign"] = MD5.hexdigest('144098c0d58411ddbc14a92bef58a353' + p.sort.flatten.join).upcase

    resp  = Net::HTTP.post_form(url, p)
    render :text => resp.body
  end
end


   发表时间:2008-12-30  
看url格式和后缀貌似用webwork做的
0 请登录后投票
   发表时间:2008-12-30  
用Ruby写起来比java来得简单,贴一段我之前用Ruby写的调用淘宝api查询商品的demo代码:
require 'rubygems'
require 'net/http'
require 'uri'
require 'md5'
require 'json'

url = URI.parse('http://sip.alisoft.com/sip/rest')
params = {'sip_appkey' => '19652', 'sip_appsecret' => '8e4b63f0ca9b11ddb671a3c295a1562b', 'sip_apiname' => 'taobao.items.get',
  'sip_timestamp' => Time.now.strftime("%Y-%m-%d %H:%M:%S"), 'format' => 'json',
  'v' => '1.0', 'q' => 'IBM T61', 'fields' => 'iid,title,pic_path,price'}
params["sip_sign"] = MD5.hexdigest('8e4b63f0ca9b11ddb671a3c295a1562b' + params.sort.flatten.join).upcase
resp  = Net::HTTP.post_form(url, params)
result = JSON.parse(resp.body)
for item in result['rsp']['items']
  puts item
end

这里的sip_appkey和sip_appsecret是你申请好一个app以后淘宝给你分配的。
而sip_sign是对参数做签名包装,你看ruby的代码写起来是不是比java要简单许多?

最近业余时间在玩Shoes+淘宝API,可以做一些好玩的小应用,把代码整理一下再来交流。
0 请登录后投票
   发表时间:2008-12-30  
lllyq 写道
看url格式和后缀貌似用webwork做的


com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:72)
com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)
com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
com.alisoft.aep.apps.framework.context.filter.SecurityContextFilter.doFilter(SecurityContextFilter.java:71)
com.alisoft.aep.core.common.web.filter.ThreadUserFilter.doFilter(ThreadUserFilter.java:74)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
com.alisoft.aep.apps.framework.jboss.SetRemoteIpFilter.doFilter(SetRemoteIpFilter.java:31)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

就是webwork
0 请登录后投票
   发表时间:2008-12-30  
lllyq 写道
看url格式和后缀貌似用webwork做的

taobao不管他用什么,问题是我们做第三方开发的要怎么用才方便。

ruby开发方便,所以研究用ruby来开发试试,你的例子很不错,可以参考下。谢谢~
0 请登录后投票
   发表时间:2008-12-30  
Quake Wang 写道
用Ruby写起来比java来得简单,贴一段我之前用Ruby写的调用淘宝api查询商品的demo代码:
require 'rubygems'
require 'net/http'
require 'uri'
require 'md5'
require 'json'

url = URI.parse('http://sip.alisoft.com/sip/rest')
params = {'sip_appkey' => '19652', 'sip_appsecret' => '8e4b63f0ca9b11ddb671a3c295a1562b', 'sip_apiname' => 'taobao.items.get',
  'sip_timestamp' => Time.now.strftime("%Y-%m-%d %H:%M:%S"), 'format' => 'json',
  'v' => '1.0', 'q' => 'IBM T61', 'fields' => 'iid,title,pic_path,price'}
params["sip_sign"] = MD5.hexdigest('8e4b63f0ca9b11ddb671a3c295a1562b' + params.sort.flatten.join).upcase
resp  = Net::HTTP.post_form(url, params)
result = JSON.parse(resp.body)
for item in result['rsp']['items']
  puts item
end

这里的sip_appkey和sip_appsecret是你申请好一个app以后淘宝给你分配的。
而sip_sign是对参数做签名包装,你看ruby的代码写起来是不是比java要简单许多?

最近业余时间在玩Shoes+淘宝API,可以做一些好玩的小应用,把代码整理一下再来交流。


是比java代码精炼多了~我是打算用ruby on rails来开发,也是可行的吧?
0 请登录后投票
   发表时间:2009-01-12  
没发现如何获取商品的url
0 请登录后投票
   发表时间:2009-01-12   最后修改:2009-01-12
pure 写道
没发现如何获取商品的url

刚试了一下!
http://auction1.taobao.com/auction/item_detail--fada6c3a25d04f2d8624da0c1d00cdbb.jhtml

http://auction1.taobao.com/auction/item_detail--商品的id.jhtml

不知道这样是不是对所有商品都有效。

已经加上了查看商品详细信息

http://www.imeifa.com.cn/mytaobao
0 请登录后投票
   发表时间:2009-01-14  
找个时间交流一下
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics