c# - .NET 中的 OAuth 2.0 与 Instagram API

标签 c# asp.net asp.net-mvc oauth

我正在使用 Instagram API,但卡在了他们 OAuth 的第 2 步。我有一个代码从他们的重定向返回给我,但他们希望我用如下参数做一个帖子......

curl \
    -F 'client_id=CLIENT-ID' \
    -F 'client_secret=CLIENT-SECRET' \
    -F 'grant_type=authorization_code' \
    -F 'redirect_uri=YOUR-REDIRECT-URI' \
    -F 'code=CODE' \
    https://api.instagram.com/oauth/access_token

我正在将其实现为 ASP.NET MVC 3 解决方案。我试着像这样实现这个帖子......


    WebRequest request = HttpWebRequest.Create("https://api.instagram.com/oauth/access_token");
    request.Method = "POST";
    request.Headers.Add("client_id", "sdlf0982jiejfopijfp92jjiwoijf90");
    request.Headers.Add("client_secret", "39993939393939393939393939393");
    request.Headers.Add("grant_type", "authorization_code");
    request.Headers.Add("redirect_uri", "http://localhost:34962/Home/Auth");
    request.Headers.Add("code", 111111);
    var response = request.GetResponse();
    return View();

这给了我一个 400 错误,指出“需要 client_id”。我已经包含了 client_id,但我显然没有正确实现它。

执行 OAuth 第二阶段的“最佳实践”方式是什么?

最佳答案

我从 above mentioned SO post 得到了答案关于将 POST 参数添加到 HttpWebRequest。以下是我的实现细节。

NameValueCollection parameters = new NameValueCollection();
parameters.Add("client_id", "3498wjfoi2892jf0j2ij02fjakjf2");
parameters.Add("client_secret", "392621gfdlfj2k2hf7g2lfhj2g");
parameters.Add("grant_type", "authorization_code");
parameters.Add("redirect_uri", "http://localhost:34962/Home/Auth");
parameters.Add("code", code);

WebClient client = new WebClient();
var result = client.UploadValues("https://api.instagram.com/oauth/access_token", parameters);

var response = System.Text.Encoding.Default.GetString(result);

return View("Index", (object)response);

关于c# - .NET 中的 OAuth 2.0 与 Instagram API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7155192/

相关文章:

c# - 即使项目在 Razor html 中成功构建,Visual Studio 也会显示错误

c# - 检查电子邮件地址是否存在

c# - 是否可以在同一个 AppDomain 上托管 WebMethods 和 ASP.NET 应用程序?

c# - 在 C# 中创建一个表达式树

c# - 如何在 MonoMac 中制作一个只有托盘图标的 C# 应用程序(无停靠图标)?

c# - 为什么 gif 动画无法在图片框 c# windows 应用程序中启动动画?

html - 具有高 dpi (150%) 的 CHtmlView 中的网页显示不正确

c# - 如何更改 Visual Studio 中 Asp Mvc 中的默认注册和登录以使用 MySql?

html - 是否有任何好的网络第三方工具可以像数据透视表一样做 excel

C#/.NET - 最小并行化快速排序导致性能下降