我遵循Twitter关于如何在iOS内执行反向授权以获得访问令牌的说明,但我被困在步骤1上。我使用TweetStation的OAuth代码作为模板。
当前AcquireRequestToken()方法工作正常-所以我知道它不是一个错误,创建签名等。但是,当我像这样添加reverse_auth头时:
var headers = new Dictionary<string,string> () {
{ "oauth_callback", OAuth.PercentEncode (config.Callback) },
{ "oauth_consumer_key", config.ConsumerKey },
{ "oauth_nonce", MakeNonce () },
{ "oauth_signature_method", "HMAC-SHA1" },
{ "oauth_timestamp", MakeTimestamp () },
{ "oauth_version", "1.0" },
{ "x_auth_mode", "reverse_auth" }};
我得到401响应。我是否误读了Twitter的说明?我还需要做些什么来调整这个初始请求吗?感谢你的任何意见,因为我完全被难住了。
找到了答案- headers字典本身从未实际发送,因此x_auth_mode值也没有发送。解决方案是将其添加到POST正文中:
var res = wc.UploadString (config.RequestTokenUrl,"POST", "x_auth_mode=reverse_auth");