【问题标题】:retrieving Instagram access_token via api in c# a在 c# 中通过 api 检索 Instagram access_token
【发布时间】:2013-12-11 18:15:16
【问题描述】:

为了向 instagram api 发出请求。我需要一个访问令牌。

在此处记录。 http://instagram.com/developer/authentication/

这些访问令牌可以更改,因此我需要通过 api 查找以获取“代码”,然后是访问令牌。我在网上看到的大多数示例都会提示用户进入 instagram,然后调用回调 url,然后你就可以开始生成 access_token。

我如何通过 api(而不是登录 instragram)获取初始“代码”/

我希望有这样的事情。

 var accessUrl = string.Format(
                    "https://instagram.com/oauth/authorize/?client_id={0}&redirect_uri={1}&response_type=code",
                    instagramClientId, redirectUrl);

            WebRequest request = WebRequest.Create(accessUrl);
            WebResponse response = request.GetResponse();

需要明确的是,我不是在问如何获取 access_token,而是如何获取“代码”而不是在不登录 instagram 的情况下生成 access_token

【问题讨论】:

标签: oauth-2.0 instagram


【解决方案1】:

code 作为 URL 查询字符串附加到 Instagram 发送到您的回调 URL 的 GET 请求中。

例如,如果你的回调 url 是:

http://www.mycallbackurl.com/callback

Instagram(在收到您的 access_token 请求后)将发送GET 电话至:

http://mycallbackurl.com/callback?code=20938409823kjl2k3j4o998as0df809s80980234809

(它是 base64 编码的)。

然后,您需要在回调服务器上捕获该 url 参数并在页面上回显(仅此而已,只有 code 参数的值),结果如下:

<html>
    <body>20938409823kjl2k3j4o998as0df809s80980234809</body>
</html>

这可以通过 php 轻松完成:

if (isset($_GET['code']))
    echo $_GET['code'];
else
    //do all the other stuff your page does

希望如果您不使用 PHP,您可以了解如何实现相同的结果。他们的身份验证流程的这一部分记录得很少,但希望这会有所帮助。

另外:(不确定我是否理解这部分问题,但是)他们允许的唯一身份验证流程是浏览器内登录页面。如果您尝试构建自己的自定义登录并传递凭据,它将无法正常工作。

【讨论】:

  • 您好,感谢您的详细回复。要确认您是否说没有办法进行身份验证,然后在不登录 instagram 网站的情况下获取访问代码。似乎很担心我可以添加此代码,并且在任何阶段访问代码都可能过期而无法续订。
  • 您将需要始终为任何进行身份验证的人提供此信息。如果token过期,需要再次弹出login auth view。这是一种糟糕的身份验证方法,我真的希望他们提供完整的 OAuth2 身份验证握手,只需使用 GET 即可完成。但他们没有,这就是为什么你看到的所有 3rd 方应用程序在你登录后都会出现授权页面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
相关资源
最近更新 更多