V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cloud_dai
V2EX  ›  问与答

豆瓣API, POST请求时,oauth 放在header Authorization 中,签名是怎么计算的?

  •  
  •   cloud_dai · 2011-12-25 02:42:20 +08:00 · 6581 次点击
    这是一个创建于 4499 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Authorization: OAuth realm="http://sp.example.com/",
    oauth_consumer_key="0685bd9184jfhq22",
    oauth_token="ad180jjd733klru7",
    oauth_signature_method="HMAC-SHA1",
    oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
    oauth_timestamp="137131200",
    oauth_nonce="4572616e48616d6d65724c61686176",
    oauth_version="1.0"


    豆瓣API真心的难用。。。
    8 条回复    1970-01-01 08:00:00 +08:00
    cloud_dai
        1
    cloud_dai  
    OP
       2011-12-25 10:28:54 +08:00
    继续寻求这么解决这问题
    AntiGameZ
        2
    AntiGameZ  
       2011-12-25 11:09:05 +08:00
    laiwei
        3
    laiwei  
       2011-12-25 11:14:20 +08:00 via Android
    oauth1的签名本身就很复杂,你可以参考豆瓣提供的示例 http://www.douban.com/service/apidoc/auth

    不过豆瓣马上就要开放oauth2相关的api授权方式了,会很方便
    cloud_dai
        4
    cloud_dai  
    OP
       2011-12-25 14:56:10 +08:00
    @laiwei @AntiGameZ
    用GET是没问题的,看了oauth lib里的oauth heaher的逻辑,按照去做还是不能match,
    难道在某地方有遗漏。。。
    laiwei
        5
    laiwei  
       2011-12-25 15:33:18 +08:00 via Android
    @cloud_dai post不行的话,get肯定也不行。你用get请求的时候没出问题应该是因为你请求的是不需要授权的内容。

    header中的签名算法比较复杂,你需要用相应的oauth lib去做
    cloud_dai
        6
    cloud_dai  
    OP
       2011-12-25 16:12:51 +08:00
    @laiwei 用豆瓣第三方登陆我app成功,url oauth进行的,现在想post一条我说,用header oauth!
    你使用豆瓣API的post过信息?
    darasion
        7
    darasion  
       2011-12-25 19:50:22 +08:00
    oauth的话,简单的说,就是先对字符串排序,再把字符串连接,然后给连接好的字符串加密一下,就签了名了。
    cloud_dai
        8
    cloud_dai  
    OP
       2011-12-26 13:41:24 +08:00
    找到原因, post时没将 Content-Type 设置为Application/atom+xml; 导致的!
    郁闷的是为什么会是401的返回, 签名不匹配!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5667 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:52 · PVG 09:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.