使用sina开放平台的ios sdk做微博转发,调用repost接口返回auth faild错误

今天遇到一个问题,在调用statuses/repost.json接口的时候,总是返回auth faild错误。
但是发布微博是可以的,而且api文档中repost接口和upload接口是一个等级的,应该不是权限问题,于是各种茫然。
在尝试各种方法,搜索无果后,只能去sina api论坛提问(帖子传送门,问题已解决)
然后不幸的是,发现评论一条微博的接口@”comments/create.json”也存在同样问题。
在等待论坛回应的过程中,无意中发现一句代码:

postDataType:kWBRequestPostDataTypeMultipart

然后跟踪到正常工作的发布微博接口中去看看,发现微博发布接口中,有图片的时候,是用multipart,但是在只有text的时候,用的是:

postDataType:kWBRequestPostDataTypeNormal

于是把转发和评论都改成normal之后,正常了。。

———– 后话 ————-
其实一开始我尝试过一共三种postdatatype,都不正常,包括normal。。因为在当时还存在另一个bug,就是微博的id,返回类型是int64的,我一直当做string在用。所以在我设置成normal的时候,报错参数传递缺少(id)字段。。后来我把id打印出来,直接硬编码在代码中,终于转发成功了一次,这样才解决了auth faild的问题以及发现这个bug。。。

多个bug一起出现,更据迷惑性啊··

再后来,发现很多调用出现auth faild的错误原因都在于postDataType:kWBRequestPostDataTypeNormal没有设置正确。