最近拿到了搜狐微博(t.sohu.com)的oauth开发key,本想做个oauth登录的,可是发现在发中文微博的时候,总是提示401认证不通过:

{"code":401,"error":"This method requires authentication.",
    "request":"/statuses/upload.json"}。

然后我试着发全ASCII码的微博,竟然可以发成功。

这样就定位到有可能是我用的utf-8编码有问题,于是尝试了个种中文编码gb2312, gbk 还有更多其他编码,都是一个401不通过的结果。

在和搜狐的开发技术支持沟通期间,我突然间灵光一动,会不会是urlencode的问题?

然后我将没有urlencode之前的微博status用来算oauth的签名,然后发送,晕,竟然成功了。

oauth签名的参数不是http的参数吗?怎么是urlencode编码前的参数呢?

为了求证对比,我尝试了twitter和新浪微博的oauth,果然,他们都是使用http的参数,即urlencode之后的参数进行签名的。

无论如何,总算解决搜狐微博oauth的问题,感谢期间热情给我技术支持的搜狐微博开放人员。

^_^

相关文章:

  • 2021-10-19
  • 2021-09-17
  • 2021-09-08
  • 2021-10-10
  • 2021-09-24
  • 2021-11-07
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-09
  • 2021-05-23
  • 2022-12-23
  • 2022-01-13
  • 2022-01-19
  • 2022-12-23
相关资源
相似解决方案