新浪微博api的一个坑

调用 http://open.weibo.com/wiki/OAuth2/access_token这个接口

看文档是

HTTP请求方式
POST
请求参数
...省略....

 

用node现写个个https的client 模拟post数据过去

var options = {
hostname: 'api.weibo.com',
port: 80,
path: api,
method: 'POST'
};

 

req = http.request(options , function(){...})

req.write(data)

req.end()

 

 

第一个报错 socket hang up

连蒙带搜 发现是需要有个设置 port : 443

好吧 加上 继续...

第二个报错 STATUS: 411 

检查发现是headers里没传content-length

好吧 加上 继续...

    var options = {
      hostname: 'api.weibo.com',
      path:  api,
      method: 'POST'
    , port: 443
    ,headers: { 'Content-Length': data.length || 0}
    };

  

 

然后调试过去 微博终于返回了 但是个失败信息

'{"error":"invalid_request","error_code":21323,"request":"/2/oauth2/access_token","error_uri":"/2/oauth2/access_token","error_description":"miss client id or secret"}' 

返回检查了自己的代码也未解决,小睡了会后继续google 有人说 微博是只看get参数的 也是就是说post过去的不认.... 不认你文档上写毛

HTTP请求方式

POST

  啊 啊 啊

 

 

path: api 修改为 path:  api+ '?' + data ,参数get也传过去,,,终于过去了.....

posted on 2013-02-19 16:58  雨弓  阅读(764)  评论(2编辑  收藏  举报