将带有urlencodeing的参数传递到网站以进行授权

时间:2013-12-17 16:12:46

标签: c# surveymonkey

所以我尝试使用此代码将我的ID,密钥和其他信息传递给网站以启动Oauth批准,但它没有得到它们。我对c#和Oauth很新,所以我不知道该怎么做。

 string url = "https://api.surveymonkey.net/oauth/authorize"; 
 string surveymonkeyPass =  HttpUtility.UrlEncode("redirect_uri=notsureyet.com");
 url = url + "?" + suverymonkeyPass;
 System.Diagnostics.Process.Start(url);

如何发送我的id api_key响应类型和redirect_uri?

2 个答案:

答案 0 :(得分:0)

在使用您的网址时,当我收到以下消息时,您似乎还需要传递客户端ID:

<强> SurveyMonkey

  

授权请求失败:缺少必需参数   redirect_uri和/或client_id。

添加随机客户端ID(例如https://api.surveymonkey.net/oauth/authorize?redirect_uri=notsureyet.com&client_id=xx)时,会显示以下消息:

<强> SurveyMonkey

  

授权请求失败:   无效的client_id“xx”。

答案 1 :(得分:0)

如果您在本地计算机上运行服务,本地主机将在端口80上运行,并准备好从SurveyMonkey的oAuth页面接收重定向。您使用System.Diagnostics.Process.Start(url)打开的浏览器窗口将提示您输入您的SurveyMonkey用户名和密码,然后将您重定向到您使用参数“code”指定的redirect_uri。

您在端口80上的服务需要接收此请求,解析代码参数,然后通过使用您的代码api_key,redirect_uri,grant_type和client_secret作为参数向https://api.surveymonkey.net/oauth/token发出请求来交换访问令牌的代码。如果一切都通过了,你将得到一个json响应,其中access_token作为键,访问令牌作为值。

如果您没有运行本地服务,则需要指向其他地方托管的服务。