我正在尝试请求身份验证令牌:
public static void RequestAuthorization(WebConsumer consumer)
{
var extraParams = new Dictionary<string, string> {
{ "oauth_token", string.Empty},
{ "oauth_callback", "http://www.ihighfive.com/" },
};
var req = consumer.PrepareRequestUserAuthorization(callback, extraParams, null);
consumer.Channel.Send(req);
}
问题是,当我运行.PrepareRequestUserAuthorization()时出现以下错误
预期的IProtocolMessage消息但收不到可识别的消息 消息。
用Fiddler检查请求/响应,我可以看到响应返回(值为obfusticated):
{ "oauth_token" : "this-is-the-oauth-token",
"oauth_token_secret" : "this-is-the-oauth-secret-token",
"oauth_callback_confirmed" : true,
"urlToSendUserTo" : "http://blah.blah.com/api/OAuthAuthorizeToken.aspx?oauth_token=token-value-is-really-long"}
对我而言,这似乎是一个很好的回应。如果我访问urlToSendUserTo,它可以工作,然后将我传递给我的初始回调网址。所以我猜DNOA在解析响应方面遇到了问题,但我看不出原因。
答案 0 :(得分:1)
服务器使用什么协议?它不是OAuth 1.0,但您在DotNetOpenAuth中使用OAuth 1.0类。 OAuth 1.0 mandates响应采用application/x-www-form-urlencoded
格式,但在您的回复片段中显然是JSON。
此外,我从未在任何规范中看到urlToSendUserTo
参数,我不知道为什么您在请求中发送空oauth_token
作为额外参数。
您和/或服务器似乎说的是非常不同的语言。