我正在尝试发布Twitter状态更新,但我无法使其正常运行.
var consumer = new TwitterConsumer(); // WebConsumer implementation var httpClient = new HttpClient(consumer.CreateAuthorizingHandler("THE_TOKEN", new HttpClientHandler())); var content = new FormUrlEncodedContent(new Dictionary{ {"status", "test"} }); // yes, yes, ugly code, only testing here var s = httpClient.PostAsync("https://api.twitter.com/1.1/statuses/update.json", content); var t = s.Result; var u = t.Content.ReadAsStringAsync().Result; // HTTP 401, response from Twitter is {"errors":[{"message":"Could not authenticate you","code":32}]}
当然,最初我认为我的auth令牌或OAuth流程存在一些问题,但所有其他事情都运行正常:
OAuth身份验证似乎有效,因为我可以访问其他API方法https://api.twitter.com/1.1/account/settings.json
.
我甚至可以在status
通过URI 提交时发布状态更新,例如POST https://api.twitter.com/1.1/statuses/update.json?status=test
.当我尝试将status
请求放入请求主体时,我只收到错误.
根据Google的说法,很多人都有类似的问题,不幸的是,建议的解决方案(比如content
仔细检查url-encoding或-Request-Header)对我来说不起作用(请求在Fiddler看起来应该如此).