在c#a中通过api检索Instagram access_token

时间:2013-12-11 18:15:16

标签: oauth-2.0 instagram

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

这里记录了哪些内容。 http://instagram.com/developer/authentication/

这些访问令牌可以更改,因此我需要通过api查找以获取“代码”,然后获取访问令牌。我在网上看到的大多数示例都会将用户提示给Instagram,然后调用回调网址,然后关闭,然后生成access_token。

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

我希望这样的事情。

 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

1 个答案:

答案 0 :(得分:1)

code附加为Instagram发送给您的回调网址的GET请求中的网址查询字符串。

例如,如果您的回调网址为:

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,您可以辨别出如何完成相同的结果。这部分身份验证流程的文档记录很少,但希望这会有所帮助。

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